’n SOCKS-roete vir Commons Net se FTPSClient
Gebruik Commons Net se socket-proxy-koppelvlak vir FTPS terwyl die bediener se gasheernaam, passiewe datakonneksies en TLS-verifikasie behou word.
Wanneer ’n SOCKS-tussenpersoon beskikbaar is, kan Commons Net se FTPSClient die geërfde socket-proxy-koppelvlak gebruik. Hou die FTPS-bediener as die verbindingsbestemming:
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 begin ’n eksplisiete FTPS-verbinding. Die toepassing besit steeds aanmelding, databeskermingsonderhandeling, oordraghanteering en ontkoppeling. Die nul-trustbestuurder-instelling kies die JVM se verstek-trustbestuurders eerder as Commons Net se slegs-datum-sertifikaatkontrole. Gebruik die beoogde trust store en die bediener se sertifikaat-gasheernaam.
Vir passiewe oordragte skep die huidige FTPSClient-implementering sy datasoek ook deur die gekonfigureerde proxy en voeg dan die TLS-laag by. Nadat jy aangemeld het, gebruik passiewe modus en onderhandel die vereiste beskermde datakanaal deur die normale FTPS-API. ’n Suksesvolle beheerverbinding voltooi nie daardie werk nie; die passiewe datakonneksie bly ’n aparte pad.
Die kode aanvaar ’n SOCKS-diens sonder ’n bykomende rekening. Ondersteuning vir verifikasie moet afsonderlik vir die gekose Java-looptyd en ontplooiing hersien word.
Dit is nie die HTTP CONNECT-koppelvlak van FTPHTTPClient nie. Daardie broer hanteer gewone FTP oor ’n HTTP-tonnel; om sy poort te verander voeg nie FTPS by nie. As die netwerk slegs ’n HTTP-proxy toelaat, kies ’n FTPS-implementering of ’n onderhoude aanpassing wat CONNECT op beide beheer- en datapaaie ondersteun.
Behou die proxy-konfigurasie vir die leeftyd van die kliënt, en hersien dit voordat jy ’n hergebruikte instansie weer koppel: FTPS-ontkoppeling stel socketfabrieke terug. Moenie sertifikaatkontroles met ’n trust-all-bestuurder vervang om die roete suksesvol te laat lyk nie.