Cando hai dispoñible un intermediario SOCKS, FTPSClient de Commons Net pode usar a interface de proxy de sockets herdada. Manteña o servidor FTPS como destino da conexión:

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

Isto inicia unha conexión FTPS explícita. A aplicación segue encargándose do inicio de sesión, da negociación da protección de datos, da xestión da transferencia e da desconexión. O axuste nulo de trust manager selecciona os xestores de confianza predeterminados da JVM en lugar da comprobación de certificados só por data de Commons Net. Use o almacén de confianza previsto e o nome de host do certificado do servidor.

Nas transferencias pasivas, a implementación actual de FTPSClient tamén crea o seu socket de datos a través do proxy configurado e despois engade a capa TLS. Tras iniciar sesión, use o modo pasivo e negocie a canle de datos protexida necesaria mediante a API normal de FTPS. Unha conexión de control correcta non completa ese traballo; a conexión de datos pasiva segue a ser un camiño aparte.

O código supón un servizo SOCKS sen conta adicional. A compatibilidade coa autenticación necesita unha revisión aparte para a contorna de execución Java e o despregamento escollidos.

Esta non é a interface HTTP CONNECT de FTPHTTPClient. Ese irmán xestiona FTP normal sobre un túnel HTTP; cambiar o seu porto non engade FTPS. Se a rede só permite un proxy HTTP, escolla unha implementación de FTPS ou unha adaptación mantida que admita CONNECT tanto na ruta de control como na de datos.

Conserve a configuración do proxy durante todo o ciclo de vida do cliente e revísea antes de volver conectar unha instancia reutilizada: a desconexión de FTPS reinicia as fábricas de sockets. Non substitúa as comprobacións de certificados por un xestor de confianza total para que a ruta pareza correcta.

Artigos relacionados