首页  >  文章  >  Java  >  如何使用 Apache Commons Net 维护 FTPS 中数据连接的 TLS 会话重用?

如何使用 Apache Commons Net 维护 FTPS 中数据连接的 TLS 会话重用?

Barbara Streisand
Barbara Streisand原创
2024-11-09 07:25:02753浏览

How to Maintain TLS Session Reuse for Data Connections in FTPS with Apache Commons Net?

如何使用 Apache Commons Net 维护 FTPS 中数据连接的 TLS 会话

问题:

使用 Apache Commons Net 连接到需要数据连接使用与控制连接相同的 TLS 会话的 FTPS 服务器。

解决方案:

要求:

服务器必须支持数据连接的 TLS 会话重用。

Apache Commons Net 重写:

重写 _prepareDataSocket_ 方法自定义 FTPSClient 实现来管理会话重用,类似于 Cyber​​duck 在其 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn