SOCKS рута за FTPSClient у Commons Net-у
Користите socket-proxy интерфејс Commons Net-а за FTPS, чувајући име хоста сервера, пасивне везе података и TLS проверу.
Када је доступан 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-а креира и свој data socket кроз конфигурисани прокси, а затим додаје TLS слој. Након пријаве користите пасивни режим и преговарајте потребни заштићени канал података кроз уобичајени FTPS API. Успешна контролна веза не обавља тај посао; пасивна веза података остаје засебан пут.
Код претпоставља SOCKS услугу без додатног налога. Подршка за аутентификацију захтева одвојен преглед за изабрано Java окружење и имплементацију.
Ово није HTTP CONNECT интерфејс FTPHTTPClient-а. Тај рођак обрађује обичан FTP кроз HTTP тунел; промена његовог порта не додаје FTPS. Ако мрежа дозвољава само HTTP прокси, изаберите FTPS имплементацију или одржавану прилагодбу која подржава CONNECT и на контролном и на путу података.
Задржите proxy конфигурацију током целог животног циклуса клијента и прегледајте је пре поновног повезивања поново коришћене инстанце: одспајање FTPS-а ресетује socket фабрике. Не замењујте провере сертификата trust-all manager-ом да би рута изгледала успешно.