Lorsqu’un intermédiaire SOCKS est disponible, le FTPSClient de Commons Net peut utiliser l’interface de proxy socket héritée. Gardez le serveur FTPS comme destination de la connexion :

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

Cela démarre une connexion FTPS explicite. L’application reste responsable de la connexion, de la négociation de la protection des données, de la gestion du transfert et de la déconnexion. Le réglage null du trust manager sélectionne les gestionnaires de confiance par défaut de la JVM plutôt que le contrôle de certificat fondé uniquement sur la date de Commons Net. Utilisez le magasin de confiance prévu et le nom d’hôte du certificat du serveur.

Pour les transferts passifs, l’implémentation actuelle de FTPSClient crée aussi sa socket de données via le proxy configuré, puis ajoute la couche TLS. Après la connexion, utilisez le mode passif et négociez le canal de données protégé requis via l’API FTPS normale. Une connexion de contrôle réussie n’accomplit pas ce travail ; la connexion de données passive reste une voie distincte.

Le code suppose un service SOCKS sans compte supplémentaire. La prise en charge de l’authentification doit être examinée séparément pour l’environnement d’exécution Java et le déploiement choisis.

Ce n’est pas l’interface HTTP CONNECT de FTPHTTPClient. Ce homologue gère le FTP ordinaire via un tunnel HTTP ; changer son port n’ajoute pas FTPS. Si le réseau n’autorise qu’un proxy HTTP, choisissez une implémentation FTPS ou une adaptation maintenue qui prend en charge CONNECT sur les chemins de contrôle et de données.

Conservez la configuration du proxy pendant tout le cycle de vie du client, et vérifiez-la avant de reconnecter une instance réutilisée : la déconnexion FTPS réinitialise les fabriques de sockets. Ne remplacez pas les contrôles de certificat par un gestionnaire de confiance totale pour faire croire à la réussite de la route.

Articles similaires