如何使用 Apache Commons Net 维护 FTPS 中数据连接的 TLS 会话
问题:
使用 Apache Commons Net 连接到需要数据连接使用与控制连接相同的 TLS 会话的 FTPS 服务器。
解决方案:
要求:
服务器必须支持数据连接的 TLS 会话重用。
Apache Commons Net 重写:
重写 _prepareDataSocket_ 方法自定义 FTPSClient 实现来管理会话重用,类似于 Cyberduck 在其 FTPClient.java 中所做的操作。
JDK 兼容性:
在 Java 8u161 及更高版本中,会话重用可能不会默认工作。要启用它:
System.setProperty("jdk.tls.useExtendedMasterSecret", "false");
替代实现:
替代实现可以在以下 Apache Commons Net JIRA 问题中找到:https://issues.apache .org/jira/browse/NET-408.
Android 特定注意事项:
对于 Android,绕过 SDK 限制来访问会话管理的反射字段:https: //issues.apache.org/jira/browse/NET-776.
后 Java 8u161 更改:
在较新版本的 Java 中,应使用sessionByHostAndPort而不是 sessionHostPortCache。
以上是如何使用 Apache Commons Net 维护 FTPS 中数据连接的 TLS 会话重用?的详细内容。更多信息请关注PHP中文网其他相关文章!