Kada je dostupan SOCKS posrednik, FTPSClient iz Commons Net može koristiti naslijeđeni interfejs socket-proxy. Zadržite FTPS server kao odredište konekcije:

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

Ovo pokreće eksplicitnu FTPS konekciju. Aplikacija i dalje upravlja prijavom, pregovaranjem o zaštiti podataka, rukovanjem prijenosom i odspajanjem. Postavka null trust manager odabire zadane trust managere JVM-a umjesto Commons Net provjere certifikata samo po datumu. Koristite predviđeni trust store i ime hosta iz certifikata servera.

Za pasivne prijenose trenutna implementacija FTPSClient kreira i svoj data socket kroz konfigurisani proxy, a zatim dodaje TLS sloj. Nakon prijave koristite pasivni režim i pregovarajte potrebni zaštićeni data kanal kroz uobičajeni FTPS API. Uspješna kontrolna konekcija ne obavlja taj posao; pasivna data konekcija ostaje zaseban put.

Kod pretpostavlja SOCKS servis bez dodatnog računa. Podrška za autentifikaciju zahtijeva odvojen pregled za odabrano Java okruženje i implementaciju.

Ovo nije HTTP CONNECT interfejs FTPHTTPClient-a. Taj srodnik obrađuje obični FTP kroz HTTP tunel; promjena njegovog porta ne dodaje FTPS. Ako mreža dozvoljava samo HTTP proxy, odaberite FTPS implementaciju ili održavanu prilagodbu koja podržava CONNECT i na kontrolnom i na data putu.

Zadržite proxy konfiguraciju tokom životnog ciklusa klijenta i pregledajte je prije ponovnog povezivanja ponovo korištene instance: odspajanje FTPS-a resetuje socket fabrike. Ne zamjenjujte provjere certifikata trust-all managerom da bi ruta izgledala uspješno.

Povezani članci