First I'd like to thank you for providing this software.

However, the documentation is somewhat lacking.  I've spent several hours
just trying to get the embedded version to accept user logins.

Here is the code I am using (drawn from the quickstart docs and other
sources):

        FtpServerFactory serverFactory = new FtpServerFactory();
        ListenerFactory listenerFactory = new ListenerFactory();

        // set the port of the listener
        listenerFactory.setPort(props.getFtpPortProperty());
        Listener listener = listenerFactory.createListener();

        // replace the default listener
        serverFactory.addListener("default", listener);

        Map<String, Ftplet> ftpletMap = new HashMap<String, Ftplet>();
        ftpletMap.put("IBMFtplet", new IBMFtplet(this));

        serverFactory.setFtplets(ftpletMap);

        ConnectionConfigFactory connectionConfigFactory = new
ConnectionConfigFactory();
        connectionConfigFactory.setAnonymousLoginEnabled(true);

        serverFactory.setConnectionConfig
(connectionConfigFactory.createConnectionConfig());

        PropertiesUserManagerFactory userManagerFactory = new
PropertiesUserManagerFactory();
        userManagerFactory.setFile(new File("users.properties"));
        userManagerFactory.setPasswordEncryptor(new
ClearTextPasswordEncryptor());
        UserManager userManager = userManagerFactory.createUserManager();

        UserFactory userFactory = new UserFactory();
        userFactory.setName("anonymous");
        userFactory.setPassword("");
        userFactory.setHomeDirectory("/tmp");

        List<Authority> auths = new ArrayList<Authority>();
        Authority auth = new WritePermission();
        auths.add(auth);
        userFactory.setAuthorities(auths);

        User user = userFactory.createUser();

        userManager.save(user);
        serverFactory.setUserManager(userManager);

        // start the server
        FtpServer server = serverFactory.createServer();

        server.start();

Here is the output:

 [NioProcessor-3] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
CREATED
[pool-3-thread-1] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
OPENED
[pool-3-thread-1] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
SENT: 220 Service ready for new user.

[pool-3-thread-1] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
RECEIVED: USER anonymous
[pool-3-thread-1] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
CLOSED
[NioProcessor-4] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
CREATED
[pool-3-thread-1] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
OPENED
[pool-3-thread-1] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
SENT: 220 Service ready for new user.

[pool-3-thread-1] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
RECEIVED: USER anonymous
[pool-3-thread-1] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
CLOSED
[NioProcessor-5] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
CREATED
[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
OPENED
[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
SENT: 220 Service ready for new user.

[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
RECEIVED: USER anonymous
[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
CLOSED
[NioProcessor-6] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
CREATED
[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
OPENED
[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
SENT: 220 Service ready for new user.

[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
RECEIVED: USER anonymous
[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
CLOSED
[NioProcessor-7] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
CREATED
[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
OPENED
[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
SENT: 220 Service ready for new user.

[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
RECEIVED: USER anonymous
[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
CLOSED
[NioProcessor-8] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
CREATED
[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
OPENED
[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
SENT: 220 Service ready for new user.

[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
RECEIVED: USER anonymous
[pool-3-thread-2] INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter -
CLOSED

here is the users.properties file:

#Generated file - don't edit (please)
#Tue May 21 10:08:40 MST 2013
ftpserver.user.anonymous.writepermission=true
ftpserver.user.anonymous.idletime=0
ftpserver.user.anonymous.userpassword=
ftpserver.user.anonymous.enableflag=true
ftpserver.user.anonymous.homedirectory=/tmp


It seems to automatically close the connection for any user (I also tried
the default admin/admin).

Thanks,

TRAVIS BOWEN
Staff Software Engineer
IBM Systems & Technology Group, Client Enablement & Systems Assurance
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       

Reply via email to