2010-06-27 5 views
1

Я внедряю apache ftpserver в мое веб-приложение java, я пробовал пару разных вещей, и каждый раз, когда я пытаюсь подключиться к серверу через FTP, он говорит, что аутентификация не удалась. Я прикрепил свой код, а также консольный вывод, когда я пытаюсь выполнить вход в систему. Есть ли у кого-нибудь предложения? Я попытался запустить это на OS X и Centos Linux.Ошибка аутентификации (ошибка 530) с встроенным FTP-сервером Apache

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] ПОЛУЧИЛИ: PASS *****

Эти 5 звезд, ваша длина пароля 8: D

Я вижу, что вы передаете файл свойств, есть ли шанс, что у вас есть пароль там?

Наконец, вы создаете UserManager, вам не нужно передавать этот объект где-нибудь?

+2

Да, вы правы. Спасибо, что просмотрел мой код. Решение состояло в том, чтобы передать объект usermanager серверу завода: Я добавил эту строку: serverFactory.setUserManager (um); до FtpServer server = serverFactory.createServer(); – Andy

+1

рад об этом: D –

+0

Решил мою проблему тоже. Пример кода шаблона с домашней страницы проекта не добавляет usermanager к serverfactory, и я в значительной степени просто копировал пример, ожидающий его работы. – ivarni

Смежные вопросы