As in SOCKS-tuskenpersoan beskikber is, kin de FTPSClient fan Commons Net de erfde socket-proxy-ynterface brûke. Hâld de FTPS-server as bestimming fan ’e ferbining:

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

Dit begjint in eksplisite FTPS-ferbining. De applikaasje bliuwt ferantwurdlik foar oanmelding, ûnderhanneling oer databeskerming, ôfhanneling fan oerdracht en ôfbrekken. De ynstelling null trust manager kiest de standert trust managers fan ’e JVM ynstee fan ’e Commons Net-sertifikaatkontrôle allinnich op datum. Brûk it bedoelde trust store en de hostnamme fan it sertifikaat fan ’e server.

By passive oerdrachten makket de hjoeddeiske FTPSClient-ymplemintaasje ek syn datasocket oer de konfigurearre proxy en foeget dan de TLS-laach ta. Brûk nei it oanmelden passive modus en ûnderhannelje it needsaaklike beskerme datakanaal fia de normale FTPS-API. In suksesfolle kontrôleferbining foltôget dat wurk net; de passive dataferbining bliuwt in apart paad.

De koade giet út fan in SOCKS-tsjinst sûnder ekstra akkount. Stipe foar autentikaasje moat apart besjoen wurde foar de keazen Java-runtime en útrôl.

Dit is net de HTTP CONNECT-ynterface fan FTPHTTPClient. Dy sibling behannelt gewoane FTP oer in HTTP-tunnel; it feroarjen fan syn poarte foeget gjin FTPS ta. As it netwurk allinnich in HTTP-proxy talit, kies dan in FTPS-ymplemintaasje of in ûnderhâlden oanpassing dy’t CONNECT stipet op sawol it kontrôle- as it datapaad.

Behâld de proxy-konfiguraasje yn ’e hiele libbenssyklus fan ’e klant, en besjoch it foar it op ’e nij ferbinen fan in werbrûkte ynstânsje: FTPS-ôfbrekken set de socket-fabriken werom. Ferfang sertifikaatkontrôles net troch in trust-all manager om it paad suksesfol lykje te litten.

Relatearre artikelen