2015-10-26 4 views
0

Я пытаюсь использовать библиотеку Apache Commons Net для подключения к FTP-серверу, где начальное соединение - это простой текст (и списки файлов), но авторизация и передача данных являются SSL. Я проверил с помощью CoreFTP, что это фактическое поведение сервера. Как я могу выполнить это с помощью библиотеки Apache Commons.apache commons ftp connect plaintext, но авторизуйте SSL

Если я использую простой FTPClient, я могу получить соединение, но затем получаю это сообщение: 503 USER: для политики сервера требуется, чтобы все клиенты были защищены.

Если я пытаюсь FTPSClient этого пути

FTPSClient l_ftp = new FTPSClient("SSL", true); 
l_ftp.setAuthValue("SSL"); 
l_ftp.connect(l_host, l_port); 

я получаю эту ошибку: javax.net.ssl.SSLException: Непризнанное сообщение SSL, открытый текст соединения?

, который имеет некоторое значение, поскольку сервер ожидает простого текстового соединения, а клиент пытается использовать SSL.

Если бы я попробовать этот

FTPSClient l_ftp = new FTPSClient("SSL", false); 
l_ftp.setAuthValue("SSL"); 
l_ftp.connect(l_host, l_port); 

я получаю это:

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake 
Caused by: java.io.EOFException: SSL peer shut down incorrectly 

, который я думаю, что, вероятно, означает примерно то же, сервер ожидает простой текст и клиент ожидает SSL.

Возможно ли это с помощью библиотеки Apache Commons?

Вот CoreFTP Log

Welcome to Core FTP, release ver 2.2, build 1857 (x64) -- © 2003-2014 
WinSock 2.0 
Mem -- 2,096,632 KB, Virt -- 8,589,934,464 KB 
Started on Monday October 26, 2015 at 14:18:PM 
Resolving nnnnnnn.nnnnn.com... 
Connect socket #900 to 222.222.222.222, port 21... 
220 CONNECT:Enterprise Gateway 2.0.02. S48 FTP Server ready... 15:18:25 10-26-2015 
AUTH SSL 
234 AUTH: command accepted. Securing command channel ... 
TLSv1, cipher TLSv1/SSLv3 (RC4-MD5) - 128 bit 
USER omitted 
331 Password required for omitted. 
PASS ********** 
230 User omitted logged in. Session Id: 25846. 
PBSZ 0 
200 PBSZ command accepted. 
PROT C 
534 PROT Request denied for policy reasons. 
PROT cmd failed... 
CCC 
200 CCC command channel is no longer secured. 
SYST 
502 Command not implemented. 
Keep alive off... 
PWD 
257 "omitted" is the current working Mailbox ID. 
PASV 
227 PASV Entering passive mode (209,95,224,76,121,95). 
LIST 
Connect socket #940 to 209.95.224.76, port 31071... 
150 Opening data connection. 
226 Transfer complete. 0 Bytes sent. 
Transferred 0 bytes in 0.008 seconds 
+0

* Первоначальное соединение - это простой текст (и списки файлов), но авторизация и передача данных - это SSL *: Вы уверены, что указали каталог * до * авторизации? Для меня это не кажется правдоподобным. –

+0

Покажите нам журнал CoreFTP. –

+0

Я не имел в виду, что листинг пришел до авторизации. Вскоре появится журнал CoreFTP. – Mitch

ответ

0

Это оказался какой-то библиотеки или какой-либо другой конфликт на сервере приложений я бегу. Когда я вытащил мой тестовый код, чтобы автономный проект, он работал нормально. Для потомков, вот рабочий код.

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

  • Нет связанных вопросов^_^