Skip to content
Snippets Groups Projects
Select Git revision
  • 47bfb9ad1783a1eab8d1c66978db7c7f2095ef64
  • main default protected
  • version_pour_projet_2
  • dev
  • LIVRABLE_3
  • LIVRABLE_2
  • LIVRABLE_1
7 results

EmbeddedFTPServer.java

Blame
  • 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;
        }
    }