SOCKS-reitti Commons Netin FTPSClientille
Käytä Commons Netin socket-välityspalvelinrajapintaa FTPS:ään säilyttäen palvelimen isäntänimi, passiiviset datayhteydet ja TLS-varmennus.
Kun SOCKS-välittäjä on käytettävissä, Commons Netin FTPSClient voi käyttää perittyä socket-välityspalvelinrajapintaa. Pidä FTPS-palvelin yhteyden kohteena:
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);
Tämä aloittaa eksplisiittisen FTPS-yhteyden. Sovellus vastaa edelleen kirjautumisesta, tietosuojan neuvottelusta, siirron käsittelystä ja katkaisusta. Null trust manager -asetus valitsee JVM:n oletusarvoiset trust managerit Commons Netin pelkän päivämäärän mukaiseen varmenne tarkistukseen sijaan. Käytä aiottua trust storea ja palvelimen varmenteen isäntänimeä.
Passiivisissa siirroissa nykyinen FTPSClient-toteutus luo datapistokkeensa myös määritetyn välityspalvelimen kautta ja lisää sitten TLS-kerroksen. Kirjautumisen jälkeen käytä passiivista tilaa ja neuvottele tarvittava suojattu datakanava tavallisen FTPS-rajapinnan kautta. Onnistunut ohjausyhteys ei suorita tätä työtä; passiivinen datayhteys pysyy erillisenä polkuna.
Koodi olettaa SOCKS-palvelun ilman lisätiliä. Todennuksen tuki vaatii erillisen tarkastelun valitulle Java-ajoympäristölle ja käyttöönotolle.
Tämä ei ole FTPHTTPClientin HTTP CONNECT -rajapinta. Se sisar käsittelee tavallista FTP:tä HTTP-tunnelin kautta; sen portin vaihtaminen ei lisää FTPS:ää. Jos verkko sallii vain HTTP-välityspalvelimen, valitse FTPS-toteutus tai ylläpidetty mukautus, joka tukee CONNECTia sekä ohjaus- että datapolulla.
Säilytä välityspalvelinasetus koko asiakkaan elinkaaren ajan ja tarkista se ennen uudelleenkäytetyn instanssin uudelleenyhdistämistä: FTPS:n katkaisu nollaa socket-tehtaat. Älä korvaa varmenteen tarkistuksia trust-all managerilla, jotta reitti näyttäisi onnistuneelta.