2015-09-23 4 views
2

Я использую org.apache.commons.net.ftp.FTPSClient для загрузки файлов с внешнего ftp-сервера. Этот сервер не управляется мной, и он настроен с опцией «require_ssl_reuse». Это означает, что, как я понимаю, этот же сеанс должен использоваться для соединения команд и данных.Повторное использование Java SSLSocket для другого порта

Для порта подключения команд используется 21, но для данных порт выбирается из диапазона неиспользуемых портов. Поэтому, когда после успешного подключения к серверу я пытаюсь использовать каталог списка, соединение закрывается из-за этого ограничения.

Внутренний клиент java использует SSLSockets. Можно ли повторно использовать SSLSession для одного и того же IP-адреса, но для разных портов? Кто-нибудь знает клиента java, который поддерживает повторное использование сеанса ssl?

Заранее благодарен!

ответ

1

SSL-сессии не привязаны к конкретным портам, и JSSE уже поддерживает возобновление сеанса.

Это должно работать из коробки.

У вас есть доказательства того, что это не так?

+0

У меня была проблема с загрузкой файлов с ftp-сервера с параметром requiere_ssl_reuse, включенным с использованием FTPSClient из org.apache.commons.net. Похоже, что он не поддерживает повторное использование сеанса ssl. Я обнаружил, что в основных классах CyberDuck они расширяют FTPSClient для поддержки этой функции. Меня устраивает! –

1

Я нашел решение! Это FTPClient class от ядра Cyberduck. Он расширяет FTPSClient от org.apache.commons.net и повторно использует сеанс, вставляя его в SSLSocket, используя java-отражение.

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