For Apache Commons VFS I already did the work, see http://vfs-utils.sourceforge.net/shell/sshd.html
Cheers, Frank > Date: Mon, 21 Jun 2010 09:52:16 +0200 > Subject: Re: sshd/sftp backed by db > From: [email protected] > To: [email protected] > > 2010/6/14 Chuck Johnstone <[email protected]>: > > That sounds quite reasonable. I'll take a look at using FtpFile. > > Other projects you might find worth looking at are Apache Commons VFS > and COTTA file system. These two have a File API which seems > nicer/more extensible than java.io.File > > > > > On 10-06-14 03:36 AM, Guillaume Nodet wrote: > >> > >> Thinking a bit more about this, I think the following would make sense: > >> * copy FtpFile and NativeFtpFile from FtpServer into the sshd subsystem > >> package > >> * copy the SftpSubsystem to AbstractSftpSubsystem and rework it to use a > >> FtpFile root > >> * rework SftpSubsystem to inherit AbstractSftpSubsystem and just provide > >> a > >> NativeFtpFile file system root > >> > >> For the long term solution, I think it would make more sense to do the > >> work > >> in FtpServer and use SSH as an addition transport layer, thus reusing user > >> management, file system users configuration and all ... It should be then > >> really simple to implement an org.apache.sshd.server.sftp.FtpFile on top > >> of > >> the existing ftpserver FtpFile and provide a user authentication mechanism > >> delegating to the ftpserver auth mechanism. > >> > >> On Mon, Jun 14, 2010 at 11:27, Guillaume Nodet<[email protected]> wrote: > >> > >> > >>> > >>> On Thu, Jun 10, 2010 at 20:19, Chuck Johnstone< > >>> [email protected]> wrote: > >>> > >>> > >>>> > >>>> Hi, > >>>> > >>>> As per the previous email I'm going to experimentally rework > >>>> SftpSubsystem > >>>> to use a db backend. > >>>> > >>>> My current approach is to copy SftpSubsystem and abstract out the file > >>>> access. The new class is called AbstractSftpSubsystem. > >>>> > >>>> Right now I've created an interface that mimics all the pertinent bits > >>>> of > >>>> java.io.File as used in SftpSubsystem. > >>>> > >>>> The interface currently looks like this: > >>>> > >>>> public static interface SftpFile { // from java.io.File > >>>> boolean exists(); > >>>> boolean createNewFile(); > >>>> SftpFile getParentFile(); // based on File.getParentFile() > >>>> String getPath(); > >>>> long length(); > >>>> boolean canRead(); > >>>> boolean canWrite(); > >>>> boolean isFile(); > >>>> boolean isDirectory(); > >>>> long lastModified(); > >>>> SftpFile[] listFiles(); > >>>> String getName(); > >>>> boolean delete(); > >>>> boolean mkdir(); > >>>> boolean renameTo(SftpFile dest); > >>>> SftpFile getAbsoluteFile(); > >>>> } > >>>> > >>>> > >>> > >>> Yeah, looks good. Though, we'd need to be able to read / write to those > >>> files, which isn't possible in this interface. > >>> I really wonder if a simplier approach would be to just copy the FtpFile > >>> interface [1] into the subsystem package. At least, we'd know that we'll > >>> be > >>> able to bridge with FtpServer quite easily. > >>> > >>> [1] > >>> > >>> http://svn.apache.org/viewvc/mina/ftpserver/trunk/ftplet-api/src/main/java/org/apache/ftpserver/ftplet/FtpFile.java?view=markup > >>> > >>> > >>>> > >>>> I believe this is in line with the discussion so far. If there is a > >>>> better way let me know. I'll submit patches if you think this approach > >>>> is > >>>> useful. > >>>> > >>>> Cool ! Patches is the way to go ... > >>>> > >>> > >>> > >>>> > >>>> The good news is that my company is funding the development time. The > >>>> above approach is our short term solution to this problem but we're also > >>>> interested in a longer term solution. Mention was made of moving this > >>>> into > >>>> apache ftpServer. We intend to help with that too. I've used ftpServer > >>>> to > >>>> implement a backend FTPS solution so I'm a bit familiar with the system > >>>> but > >>>> I'm not familiar with the details of SFTP. I'm assuming that SFTP code > >>>> from > >>>> SftpSubsystem could be ported into Mina ftpServer structures. > >>>> > >>>> > >>> > >>> Well, I'm not very familiar with the FtpServer project. I wonder if it > >>> would be easier / cleaner to integrate SSHD into FtpServer project as an > >>> additional transport, or integrate FtpServer into SSHD as a new backend > >>> for > >>> SFTP subsystem. Maybe other FtpServer people can jump in and throw some > >>> ideas here. > >>> > >>> > >>> > >>>> > >>>> I'll be focused on the short term solution over the next few weeks but > >>>> after that I can move onto the longer term solution. > >>>> Discussion/guidance in > >>>> this task will be greatly appreciated. > >>>> > >>>> Chuck Johnstone > >>>> > >>>> > >>> > >>> > >>> -- > >>> Cheers, > >>> Guillaume Nodet > >>> ------------------------ > >>> Blog: http://gnodet.blogspot.com/ > >>> ------------------------ > >>> Open Source SOA > >>> http://fusesource.com > >>> > >>> > >>> > >>> > >> > >> > > > > _________________________________________________________________ New Windows 7: Simplify what you do everyday. Find the right PC for you. http://windows.microsoft.com/shop
