Kapag may available na tagapamagitan ng SOCKS, maaaring gamitin ng FTPSClient ng Commons Net ang minanang socket proxy interface. Panatilihin ang FTPS server bilang destinasyon ng koneksyon:

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);

Sinisimulan nito ang isang tahasang koneksyon ng FTPS. Pagmamay-ari pa rin ng aplikasyon ang pag-login, pakikipag-ayos sa proteksyon ng data, paghawak ng paglilipat at pagdiskonekta. Pinipili ng null trust manager na setting ang mga default na trust manager ng JVM sa halip na ang tsek ng sertipiko ng Commons Net na nakabatay lamang sa petsa. Gamitin ang inilaan na trust store at ang hostname ng sertipiko ng server.

Para sa mga passive na paglilipat, gumagawa rin ang kasalukuyang implementasyon ng FTPSClient ng data socket nito sa pamamagitan ng naka-configure na proxy, pagkatapos ay idinadagdag ang TLS layer. Pagkatapos mag-login, gamitin ang passive mode at makipag-ayos sa kinakailangang protektadong channel ng data sa pamamagitan ng normal na FTPS API. Hindi tinatapos ng matagumpay na control connection ang gawaing iyon; nananatiling hiwalay na landas ang passive na koneksyon ng data.

Ipinapalagay ng code ang isang serbisyong SOCKS na walang karagdagang account. Kailangan ng suporta sa pagpapatunay ng hiwalay na pagsusuri para sa napiling Java runtime at deployment.

Hindi ito ang HTTP CONNECT interface ng FTPHTTPClient. Hinahawakan ng kapatid na iyon ang ordinaryong FTP sa isang HTTP tunnel; hindi nagdadagdag ng FTPS ang pagpapalit ng port nito. Kung pinapayagan lamang ng network ang isang HTTP proxy, pumili ng implementasyon ng FTPS o pinapanatiling adaptation na sumusuporta sa CONNECT sa parehong control at data path.

Panatilihin ang configuration ng proxy sa buong siklo ng buhay ng client, at suriin ito bago muling ikonekta ang isang muling ginamit na instance: nire-reset ng pagdiskonekta ng FTPS ang mga socket factory. Huwag palitan ang mga tsek ng sertipiko ng trust-all manager para magmukhang matagumpay ang ruta.

Kaugnay na mga artikulo