Select Git revision
EmbeddedFTPServer.java
-
fabiovandewaeter authoredfabiovandewaeter authored
EmbeddedFTPServer.java 1.61 KiB
package fil.sr2.flopbox;
import org.apache.ftpserver.FtpServer;
import org.apache.ftpserver.FtpServerFactory;
import org.apache.ftpserver.ftplet.FtpException;
import org.apache.ftpserver.listener.ListenerFactory;
import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory;
import org.apache.ftpserver.usermanager.impl.BaseUser;
import java.io.File;
public class EmbeddedFTPServer {
private FtpServerFactory serverFactory;
private FtpServer server;
private PropertiesUserManagerFactory userManagerFactory;
private int port;
public EmbeddedFTPServer(int port) {
this.port = port;
serverFactory = new FtpServerFactory();
ListenerFactory listenerFactory = new ListenerFactory();
listenerFactory.setPort(port);
serverFactory.addListener("default", listenerFactory.createListener());
userManagerFactory = new PropertiesUserManagerFactory();
serverFactory.setUserManager(userManagerFactory.createUserManager());
}
public void start() throws FtpException {
server = serverFactory.createServer();
server.start();
}
public void stop() {
if (server != null) {
server.stop();
}
}
public void addUser(String username, String password, File homeDir) throws FtpException {
BaseUser user = new BaseUser();
user.setName(username);
user.setPassword(password);
user.setHomeDirectory(homeDir.getAbsolutePath());
serverFactory.getUserManager().save(user);
}
public int getPort() {
return port;
}
}