Comment maintenir une session TLS pour la connexion de données dans FTPS avec Apache Commons Net
Problème :
Connexion à un serveur FTPS qui nécessite une connexion de données pour utiliser la même session TLS que la connexion de contrôle à l'aide d'Apache Commons Net.
Solution :
Exigence :
Le serveur doit prendre en charge la réutilisation de session TLS pour les connexions de données.
Apache Commons Net Overriding :
Remplacez la méthode _prepareDataSocket_ dans un implémentation FTPSClient personnalisée pour gérer la réutilisation des sessions, similaire à ce que fait Cyberduck dans son FTPClient.java.
Compatibilité JDK :
Dans Java 8u161 et versions ultérieures, la réutilisation des sessions peut ne pas fonctionne par défaut. Pour l'activer :
System.setProperty("jdk.tls.useExtendedMasterSecret", "false");
Implémentation alternative :
Une implémentation alternative peut être trouvée dans le numéro Apache Commons Net JIRA suivant : https://issues.apache .org/jira/browse/NET-408.
Considérations spécifiques à Android :
Pour Android, contournez les restrictions du SDK pour accéder aux champs de réflexion pour la gestion de session : https : //issues.apache.org/jira/browse/NET-776.
Modifications post-Java 8u161 :
Dans les versions plus récentes de Java, sessionsByHostAndPort doit être utilisé au lieu de sessionHostPortCache.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!