Кога е достапен SOCKS посредник, FTPSClient на Commons Net може да го користи наследениот 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 ги избира стандардните trust manager-и на JVM наместо проверката на сертификатот само по датум на Commons Net. Користете го предвидениот trust store и името на домаќинот од сертификатот на серверот.

За пасивни преноси, тековната имплементација на FTPSClient го создава и својот податочен socket преку конфигурираниот прокси, потоа го додава TLS слојот. По најавата, користете пасивен режим и преговарајте го потребниот заштитен податочен канал преку нормалниот FTPS API. Успешна контролна врска не ја завршува таа работа; пасивната податочна врска останува одделна патека.

Кодот претпоставува SOCKS услуга без дополнителна сметка. Поддршката за автентикација бара одделен преглед за избраната Java околина и распоредување.

Ова не е HTTP CONNECT интерфејсот на FTPHTTPClient. Тој брат ракува со обичен FTP преку HTTP тунел; менувањето на неговиот порт не додава FTPS. Ако мрежата дозволува само HTTP прокси, изберете FTPS имплементација или одржувана адаптација што поддржува CONNECT и на контролната и на податочната патека.

Задржете ја прокси конфигурацијата за целиот животен циклус на клиентот и прегледајте ја пред повторно поврзување на повторно користен пример: исклучувањето на FTPS ги ресетира socket фабриките. Не заменувајте ги проверките на сертификатот со trust-all manager за рутата да изгледа успешна.

Поврзани статии