En SOCKS-rute for Commons Nets FTPSClient
Bruk Commons Nets socket-proxy-grensesnitt for FTPS, og behold serverens vertsnavn, passive dataforbindelser og TLS-verifisering.
Når en SOCKS-mellommann er tilgjengelig, kan Commons Nets FTPSClient 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 eier fortsatt innlogging, forhandling om databeskyttelse, håndtering av overføring og frakobling. Innstillingen null trust manager velger JVMs standard trust managers i stedet for Commons Nets datobaserte sertifikatkontroll. Bruk det tiltenkte trust store og serverens sertifikat-vertsnavn.
Ved passive overføringer oppretter den nåværende FTPSClient-implementasjonen også datasocketen sin gjennom den konfigurerte proxyen, og legger deretter til TLS-laget. Etter innlogging bruker du passiv modus og forhandler den nødvendige beskyttede datakanalen gjennom det vanlige FTPS-API-et. En vellykket kontrollforbindelse fullfører ikke det arbeidet; den passive dataforbindelsen forblir en egen vei.
Koden forutsetter en SOCKS-tjeneste uten en ekstra konto. Støtte for autentisering krever 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 en HTTP-proxy, velg en FTPS-implementasjon eller en vedlikeholdt tilpasning som støtter CONNECT på både kontroll- og databanen.
Behold proxy-konfigurasjonen gjennom klientens livssyklus, og gjennomgå den før en gjenbrukt instans kobles til på nytt: frakobling av FTPS nullstiller socket-fabrikkene. Ikke erstatt sertifikatkontroller med en trust-all-manager for å få ruten til å se vellykket ut.