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