Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java SFTP server library? [closed]

Tags:

java

sftp

Is there a Java library that can be used to implement an SFTP server?

I'm trying to receive files via SFTP, but I can't seem to find any implementation of an SFTP server. I've found FTP/SFTP/FTPS client libraries, and FTP/FTPS server libraries, but none for a server for SFTP.

To clarify, I'm trying to receive files via SFTP. Not "get" or "put" files from my application to another existing server.

Right now my application lets the users connect to the local linux SFTP server, drop the files, and then my application polls the directory, but I feel that this is a poor implementation; I hate the idea of "polling" directories, but unfortunately they HAVE to use SFTP. Any suggestions?

like image 687
CB. Avatar asked Jun 19 '10 17:06

CB.


2 Answers

How to setup an SFTP server using Apache Mina SSHD:

public void setupSftpServer(){     SshServer sshd = SshServer.setUpDefaultServer();     sshd.setPort(22);     sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider("hostkey.ser"));      List<NamedFactory<UserAuth>> userAuthFactories = new ArrayList<NamedFactory<UserAuth>>();     userAuthFactories.add(new UserAuthNone.Factory());     sshd.setUserAuthFactories(userAuthFactories);      sshd.setCommandFactory(new ScpCommandFactory());      List<NamedFactory<Command>> namedFactoryList = new ArrayList<NamedFactory<Command>>();     namedFactoryList.add(new SftpSubsystem.Factory());     sshd.setSubsystemFactories(namedFactoryList);      try {         sshd.start();     } catch (Exception e) {         e.printStackTrace();     } } 

And that's all.

like image 63
Gijs Overvliet Avatar answered Oct 06 '22 08:10

Gijs Overvliet


Please notice that SFTP is a not FTP over SSL, nor FTP over SSH. The SFTP server support requires an implementation of SSHD in Java. Your best bet is Apache SSHD,

http://mina.apache.org/sshd-project/

I never used the SFTP but I heard it's basic but functional.

like image 35
ZZ Coder Avatar answered Oct 06 '22 09:10

ZZ Coder