Kad ir pieejams SOCKS starpnieks, Commons Net FTPSClient var izmantot mantoto socket-proxy saskarni. Saglabājiet FTPS serveri kā savienojuma galamērķi:

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

Tas sāk skaidru FTPS savienojumu. Lietojumprogramma joprojām atbild par pieteikšanos, datu aizsardzības saskaņošanu, pārsūtīšanas apstrādi un atvienošanu. Null trust manager iestatījums izvēlas JVM noklusējuma trust manager, nevis Commons Net sertifikāta pārbaudi tikai pēc datuma. Izmantojiet paredzēto trust store un servera sertifikāta resursdatora nosaukumu.

Pasīviem pārsūtījumiem pašreizējā FTPSClient implementācija savu datu socket izveido arī caur konfigurēto proxy un pēc tam pievieno TLS slāni. Pēc pieteikšanās izmantojiet pasīvo režīmu un caur parasto FTPS API saskaņojiet nepieciešamo aizsargāto datu kanālu. Veiksmīgs vadības savienojums šo darbu nepabeidz; pasīvais datu savienojums paliek atsevišķs ceļš.

Kods pieņem SOCKS pakalpojumu bez papildu konta. Autentifikācijas atbalsts ir atsevišķi jāizskata izvēlētajai Java izpildlaika videi un izvietošanai.

Šī nav FTPHTTPClient HTTP CONNECT saskarne. Tas brālis apstrādā parasto FTP caur HTTP tuneli; tā porta maiņa nepievieno FTPS. Ja tīkls atļauj tikai HTTP proxy, izvēlieties FTPS implementāciju vai uzturētu adaptāciju, kas atbalsta CONNECT gan vadības, gan datu ceļā.

Saglabājiet proxy konfigurāciju visā klienta dzīves ciklā un pārskatiet to pirms atkārtoti izmantotas instances atkārtotas pievienošanas: FTPS atvienošana atiestata socket rūpnīcas. Neaizstājiet sertifikāta pārbaudes ar trust-all manager, lai maršruts izskatītos veiksmīgs.

Saistītie raksti