2010-06-27 24 views
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 

回答

3

我的問題可能聽起來很蠢,但 我可以將日誌

12所示:04:14233 INFO [STDOUT] 12:04:14233 INFO [FtpLoggingFilter] RECEIVED:PASS *****

這些都是5星,您的密碼長度爲8:d

我可以看到你傳遞一個屬性文件,是有你在那裏有密碼的任何機會呢?

最後,你創建一個UserManager,你不必在某個地方傳遞這個對象?

+2

是的,你是對的。感謝您查看我的代碼。解決方法是將用戶管理對象傳遞到服務器工廠: 我添加了以下行: serverFactory.setUserManager(um); 之前 FtpServer server = serverFactory.createServer(); – Andy 2010-06-28 09:06:23

+1

高興這個:D – 2010-06-28 09:10:37

+0

也解決了我的問題。項目主頁中的示例樣板代碼不會將用戶管理器添加到serverfactory,我幾乎只是複製了希望它工作的示例。 – ivarni 2011-12-08 09:09:48

相關問題