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 менен алмаштырбаңыз.