Når en SOCKS-mellommann er tilgjengelig, kan FTPSClient i Commons Net bruke det arvede socket-proxy-grensesnittet. Behold FTPS-serveren som forbindelsens destinasjon:

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

Dette starter en eksplisitt FTPS-forbindelse. Applikasjonen står fortsatt for pålogging, forhandling av databeskyttelse, håndtering av overføringen og frakobling. Innstillingen null trust manager velger JVM-ens standard trust managers i stedet for Commons Nets datobaserte sertifikatkontroll. Bruk det tiltenkte trust store og serverens sertifikat-vertsnavn.

Ved passive overføringer lager den nåværende FTPSClient-implementasjonen også datasocketen gjennom den konfigurerte proxyen, og legger deretter til TLS-laget. Etter pålogging bruker du passiv modus og forhandler den nødvendige beskyttede datakanalen via det vanlige FTPS-API-et. En vellykket kontrollforbindelse fullfører ikke dette arbeidet; den passive dataforbindelsen forblir en separat vei.

Koden forutsetter en SOCKS-tjeneste uten ekstra konto. Støtte for autentisering trenger egen gjennomgang for det valgte Java-kjøremiljøet og utrullingen.

Dette er ikke HTTP CONNECT-grensesnittet til FTPHTTPClient. Den søsteren håndterer vanlig FTP over en HTTP-tunnel; å endre porten dens legger ikke til FTPS. Hvis nettverket bare tillater én HTTP-proxy, velg en FTPS-implementasjon eller en vedlikeholdt tilpasning som støtter CONNECT på både kontroll- og databanen.

Behold proxykonfigurasjonen gjennom hele klientens livssyklus, og gjennomgå den før en gjenbrukt instans kobles til igjen: frakobling av FTPS nullstiller socket-fabrikkene. Ikke bytt ut sertifikatkontroller med en trust-all-manager for at ruten skal se vellykket ut.

Relaterte artikler