1
我在我的java web應用中嵌入apache ftpserver,我嘗試了幾個不同的東西,每次嘗試通過FTP連接到服務器時,它都表示驗證失敗。當我嘗試登錄時,我附加了我的代碼和控制檯輸出。有沒有人有任何建議?我試着在OS X和Centos Linux上運行它。使用嵌入式Apache FTP服務器驗證失敗(錯誤530)
PropertiesUserManagerFactory userManagerFactory = new PropertiesUserManagerFactory();
userManagerFactory.setFile(new File("/ftpdata/myusers.properties"));
//userManagerFactory.setPasswordEncryptor(new SaltedPasswordEncryptor());
userManagerFactory.setPasswordEncryptor(new ClearTextPasswordEncryptor());
UserManager um = userManagerFactory.createUserManager();
BaseUser user = new BaseUser();
user.setName("andy");
user.setPassword("12345678");
user.setHomeDirectory("/ftpdata/");
um.save(user);
FtpServerFactory serverFactory = new FtpServerFactory();
ListenerFactory factory = new ListenerFactory();
factory.setPort(2225);
serverFactory.addListener("default", factory.createListener());
FtpServer server = serverFactory.createServer();
server.start();
12:03:28,768 INFO [STDOUT] 12:03:28,768 INFO [DefaultFtpServer] FTP server started
12:04:14,200 INFO [STDOUT] 12:04:14,200 INFO [FtpLoggingFilter] CREATED
12:04:14,208 INFO [STDOUT] 12:04:14,208 INFO [FtpLoggingFilter] OPENED
12:04:14,228 INFO [STDOUT] 12:04:14,228 INFO [FtpLoggingFilter] RECEIVED: USER andy
12:04:14,230 INFO [STDOUT] 12:04:14,230 INFO [FtpLoggingFilter] SENT: 220 Service ready for new user.
12:04:14,232 INFO [STDOUT] 12:04:14,232 INFO [FtpLoggingFilter] SENT: 331 User name okay, need password for andy.
12:04:14,233 INFO [STDOUT] 12:04:14,233 INFO [FtpLoggingFilter] RECEIVED: PASS *****
12:04:14,236 INFO [STDOUT] 12:04:14,236 WARN [PASS] User failed to log in
12:04:14,736 INFO [STDOUT] 12:04:14,736 WARN [PASS] Login failure - andy
12:04:14,740 INFO [STDOUT] 12:04:14,740 INFO [FtpLoggingFilter] RECEIVED: QUIT
12:04:14,746 INFO [STDOUT] 12:04:14,746 INFO [FtpLoggingFilter] SENT: 530 Authentication failed.
12:04:14,746 INFO [STDOUT] 12:04:14,746 INFO [FtpLoggingFilter] SENT: 221 Goodbye.
12:04:14,747 INFO [STDOUT] 12:04:14,746 INFO [FtpLoggingFilter] CLOSED
是的,你是對的。感謝您查看我的代碼。解決方法是將用戶管理對象傳遞到服務器工廠: 我添加了以下行: serverFactory.setUserManager(um); 之前 FtpServer server = serverFactory.createServer(); – Andy 2010-06-28 09:06:23
高興這個:D – 2010-06-28 09:10:37
也解決了我的問題。項目主頁中的示例樣板代碼不會將用戶管理器添加到serverfactory,我幾乎只是複製了希望它工作的示例。 – ivarni 2011-12-08 09:09:48