Commons Net FTPSClient үшін SOCKS бағыты
Сервердің хост атауын, пассивті деректер қосылымдарын және TLS тексеруін сақтай отырып, FTPS үшін Commons Net-тің socket-proxy интерфейсін пайдаланыңыз.
SOCKS делдалы қолжетімді болғанда, Commons Net-тің FTPSClient-і мұрагерлік socket-proxy интерфейсін пайдалана алады. FTPS серверін қосылымның межелі нүктесі ретінде қалдырыңыз:
var client = new org.apache.commons.net.ftp.FTPSClient(false);
client.setProxy(new java.net.Proxy(
java.net.Proxy.Type.SOCKS,
new java.net.InetSocketAddress("proxy.example", 1080)));
client.setTrustManager(null);
client.setEndpointCheckingEnabled(true);
client.setConnectTimeout(10000);
client.connect("ftps.example", 21);
Бұл айқын FTPS қосылымын бастайды. Қолданба әлі де кіруге, деректерді қорғау туралы келіссөзге, тасымалдауды басқаруға және ажыратуға жауапты. null trust manager баптауы Commons Net-тің тек күнге негізделген сертификат тексеруінің орнына JVM-нің әдепкі trust manager-лерін таңдайды. Көзделген trust store мен сервер сертификатының хост атауын пайдаланыңыз.
Пассивті тасымалдауларда ағымдағы FTPSClient іске асырылуы деректер socket-ін де конфигурацияланған прокси арқылы жасайды, содан кейін TLS қабатын қосады. Кіргеннен кейін пассивті режимді пайдаланыңыз және қажетті қорғалған деректер арнасын қалыпты FTPS API арқылы келісіңіз. Сәтті басқару қосылымы бұл жұмысты аяқтамайды; пассивті деректер қосылымы бөлек жол болып қалады.
Код қосымша тіркелгісіз SOCKS қызметін болжайды. Аутентификацияны қолдау таңдалған Java ортасы мен орналастыру үшін жеке қарауды талап етеді.
Бұл FTPHTTPClient-тің HTTP CONNECT интерфейсі емес. Ол бауырлас қарапайым FTP-ны HTTP туннелі арқылы өңдейді; оның портын өзгерту FTPS қоспайды. Егер желі тек HTTP проксиге рұқсат етсе, басқару және деректер жолдарының екеуінде де CONNECT қолдайтын FTPS іске асырылуын немесе қолдау көрсетілетін бейімделуді таңдаңыз.
Прокси конфигурациясын клиенттің бүкіл өмірлік циклінде сақтап, қайта пайдаланылған дананы қайта қосу алдында қарап шығыңыз: FTPS ажыратылуы socket фабрикаларын қалпына келтіреді. Бағыт сәтті көрінуі үшін сертификат тексерулерін trust-all manager-мен алмастырмаңыз.