jackgene / sftp-servlet-container

A servlet container that uses SFTP instead of HTTP as its access protocol.
1 stars 0 forks source link

Add support for listing directories #8

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Refer to WebDAV spec to try and implement a HttpServlet compatible 
implementation.
http://www.webdav.org/specs/rfc4918.html

Original issue reported on code.google.com by jackg...@gmail.com on 28 Feb 2012 at 4:30

GoogleCodeExporter commented 8 years ago
PROPFIND request:
=====
PROPFIND /container/ HTTP/1.1
Host: www.example.com
Depth: 1
Content-Type: application/xml; charset="utf-8"
Content-Length: xxxx

<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:">
  <D:allprop/>
</D:propfind>

Example PROPFIND response single file entry:
=====
<D:response>
      <D:href>/container/</D:href>
      <D:propstat>
        <D:prop xmlns:R="http://ns.example.com/boxschema/">
          <R:bigbox><R:BoxType>Box type A</R:BoxType></R:bigbox>
          <R:author><R:Name>Hadrian</R:Name></R:author>
          <D:creationdate>1997-12-01T17:42:21-08:00</D:creationdate>
          <D:displayname>Example collection</D:displayname>
          <D:resourcetype><D:collection/></D:resourcetype>
          <D:supportedlock>
            <D:lockentry>
              <D:lockscope><D:exclusive/></D:lockscope>
              <D:locktype><D:write/></D:locktype>
            </D:lockentry>
            <D:lockentry>
              <D:lockscope><D:shared/></D:lockscope>
              <D:locktype><D:write/></D:locktype>
            </D:lockentry>
          </D:supportedlock>
        </D:prop>
        <D:status>HTTP/1.1 200 OK</D:status>
      </D:propstat>
    </D:response>

Original comment by jackg...@gmail.com on 7 Mar 2012 at 2:59

GoogleCodeExporter commented 8 years ago
- "Files" (paths) that support PROPFIND vs. not
     - (HTTP error code if verb not supported?).
- Is HEAD still necessary if PROPFIND is supported?
- Affected methods on SshFile:
     - listSshFiles()
     - isFile()
     - isDirectory()
     - getSize()
     - getLastModified()
     - doesExist()
     - These are indirectly affected:
          - isExecutable() (through isDirectory())
- Which methods require lazy loading considerations (listSshFiles()).

Original comment by jackg...@gmail.com on 9 Mar 2012 at 5:12

GoogleCodeExporter commented 8 years ago

Original comment by jackg...@gmail.com on 7 Jul 2012 at 5:14

GoogleCodeExporter commented 8 years ago
Completed implementation.

Original comment by jackg...@gmail.com on 7 Jul 2012 at 5:38