Quan hi ha disponible un intermediari SOCKS, l’FTPSClient de Commons Net pot utilitzar la interfície de socket proxy heretada. Manteniu el servidor FTPS com a destinació de la connexió:

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

Això inicia una connexió FTPS explícita. L’aplicació encara s’encarrega de l’inici de sessió, la negociació de la protecció de dades, la gestió de la transferència i la desconnexió. El paràmetre nul de trust manager selecciona els gestors de confiança per defecte de la JVM en lloc de la comprovació de certificats només per data de Commons Net. Feu servir l’emmagatzematge de confiança previst i el nom d’amfitrió del certificat del servidor.

Per a les transferències passives, la implementació actual d’FTPSClient també crea el seu socket de dades a través del proxy configurat i després afegeix la capa TLS. Després de l’inici de sessió, feu servir el mode passiu i negocieu el canal de dades protegit necessari mitjançant l’API normal de FTPS. Una connexió de control correcta no completa aquesta feina; la connexió de dades passiva continua sent un camí a part.

El codi assumeix un servei SOCKS sense cap compte addicional. El suport d’autenticació necessita una revisió a part per a l’entorn d’execució Java i el desplegament triats.

Aquesta no és la interfície HTTP CONNECT de FTPHTTPClient. Aquest germà gestiona FTP ordinari sobre un túnel HTTP; canviar-ne el port no afegeix FTPS. Si la xarxa només permet un proxy HTTP, trieu una implementació d’FTPS o una adaptació mantinguda que admeti CONNECT tant al camí de control com al de dades.

Conserveu la configuració del proxy durant tot el cicle de vida del client i reviseu-la abans de tornar a connectar una instància reutilitzada: la desconnexió d’FTPS reinicia les fàbriques de sockets. No substituïu les comprovacions de certificats per un gestor de confiança total per fer que la ruta sembli correcta.

Articles relacionats