I looked at the various manuals but nothing is clearly document about
how to set the idle timeout. I have couple of questions?

1. On linux can I set idle-timeout on EmbeddedFtpServer outside of JVM
but either logging in ftp server or by any other means?
2. I have below code (that I haven't written) that I need to modify to
add idle-timeout. But when I add
"config.listeners.default.data-connection.idle-timeout" I get
org.apache.ftpserver.FtpServerConfigurationException: Unknown property
"idle-timeout" on class
org.apache.ftpserver.DefaultDataConnectionConfig exception.
How do I add idle-timeout?

    public static FtpServer createFtpServer(int port, String username,
String password, String homeDir) throws Exception {
        ConfigurableFtpServerContext context = new
ConfigurableFtpServerContext(new
PropertiesConfiguration(getFtpProperties(port)));
        PropertiesUserManager userManager =
(PropertiesUserManager)context.getUserManager();
        addUser(userManager, username, password, homeDir);

        FtpServer ftpServer = new FtpServer(context);
        return ftpServer;
    }

    public static Properties getFtpsProperties(int port, String
keystoreLoc) throws IOException {
        Properties p = new Properties();
        if (keystoreLoc == null) keystoreLoc = "./dist/ftp/.keystore";
        // Enable FTPS (SSL)
        p.put("config.listeners.default.implicit-ssl", "false");
        p.put("config.listeners.default.port", Integer.toString(port));
        p.put("config.listeners.default.ssl.class",
"org.apache.ftpserver.ssl.DefaultSsl");
        p.put("config.listeners.default.ssl.keystore-file", keystoreLoc);
        p.put("config.listeners.default.ssl.keystore-password", "password");
        p.put("config.listeners.default.ssl.keystore-type", "JKS");
        p.put("config.listeners.default.ssl.keystore-algorithm", "SunX509");
        p.put("config.listeners.default.ssl.ssl-protocol", "TLS");
        p.put("config.listeners.default.ssl.client-authentication", "false");
        p.put("config.listeners.default.ssl.key-password", "password");

        // Enable encrypted data channel
        p.put("config.listeners.default.data-connection.class",
"org.apache.ftpserver.DefaultDataConnectionConfig");
        p.put("config.listeners.default.data-connection.ssl.class",
"org.apache.ftpserver.ssl.DefaultSsl");
        log.info("SETTING IDLE TIMEOUT");
        p.put("config.listeners.default.data-connection.idle-timeout", "300");
        log.info("DONE SETTING IDLE TIMEOUT");
        // p.put("config.listeners.default.data-connection.passive.address",
"localhost");
        p.put("config.listeners.default.data-connection.passive.ports",
"5000-5010");
        p.put("config.listeners.default.data-connection.ssl.keystore-file",
keystoreLoc);
        p.put("config.listeners.default.data-connection.ssl.keystore-password",
"password");
        p.put("config.listeners.default.data-connection.ssl.keystore-type",
"JKS");
        p.put("config.listeners.default.data-connection.ssl.keystore-algorithm",
"SunX509");
        p.put("config.listeners.default.data-connection.ssl.ssl-protocol",
"TLS");
        
p.put("config.listeners.default.data-connection.ssl.client-authentication",
"false");

        p.put("config.connection-manager.max-connection", 100); // No Limit
        p.put("config.connection-manager.max-login", 100); // No Limit

        // User Manager
        p.put("config.file-system-manager.create-home", "true");
//        p.put("config.user-manager.class",
"org.apache.ftpserver.usermanager.PropertiesUserManager");
//        p.put("config.user-manager.admin", "efe");
//        p.put("config.user-mananger.prop-file", userfile);
//        p.put("config.user.manager.prop-password-encrypt", "false");
//
//        System.out.println("UserFile = " + userfile);
        return p;
    }

Reply via email to