Pot SOCKS za FTPSClient iz Commons Net
Uporabite vmesnik socket proxy iz Commons Net za FTPS, pri tem pa ohranite ime gostitelja strežnika, pasivne podatkovne povezave in preverjanje TLS.
Ko je na voljo posrednik SOCKS, lahko FTPSClient iz Commons Net uporabi podedovani vmesnik socket proxy. Strežnik FTPS ohranite kot cilj povezave:
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);
To začne izrecno povezavo FTPS. Aplikacija še vedno upravlja prijavo, pogajanja o zaščiti podatkov, obdelavo prenosa in prekinitev. Nastavitev null trust manager izbere privzete trust managerje JVM namesto preverjanja potrdila samo po datumu v Commons Net. Uporabite predvideno shrambo zaupanja in ime gostitelja potrdila strežnika.
Pri pasivnih prenosih trenutna izvedba FTPSClient ustvari svojo podatkovno vtičnico tudi prek konfiguriranega proxyja in nato doda plast TLS. Po prijavi uporabite pasivni način in se pogajajte o zahtevanem zaščitenem podatkovnem kanalu prek običajnega API FTPS. Uspešna krmilna povezava tega dela ne dokonča; pasivna podatkovna povezava ostaja ločena pot.
Koda predpostavlja storitev SOCKS brez dodatnega računa. Podpora preverjanja pristnosti potrebuje ločen pregled za izbrano izvajalno okolje Java in uvedbo.
To ni vmesnik HTTP CONNECT iz FTPHTTPClient. Tisti brat obdeluje običajni FTP prek tunela HTTP; sprememba njegovih vrat ne doda FTPS. Če omrežje dovoljuje samo proxy HTTP, izberite izvedbo FTPS ali vzdrževano prilagoditev, ki podpira CONNECT na krmilni in podatkovni poti.
Ohranite konfiguracijo proxyja ves življenjski cikel odjemalca in jo pregledajte pred ponovno povezavo znova uporabljenega primerka: prekinitev FTPS ponastavi tovarne vtičnic. Preverjanj potrdil ne zamenjajte s trust-all managerjem, da bi pot izgledala uspešna.