This like the work of a firewall rejecting anonymous Ftp. You could verify this by trying to log in from a client on the same system as the server, or by changing the configuration to use a username other than "anonymous". On 21 May 2013 20:28, "Travis Bowen" <tbo...@us.ibm.com> wrote:
> 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 >