java - 如何在 apache FTPS 客户端中使用自定义套接字工厂

标签 java ssl sslsocketfactory

我正在使用 FTPClient 与 FTP 服务器通信。它运行完美。

Apache 向 FTPSClient 提供 API,以使用 SSL/TLS 与 FTP 服务器通信。但它使用的是自己的套接字工厂。因此,我无法访问套接字 session 。

我想创建自定义套接字工厂,并手动处理套接字 session 。

请帮帮我。

最佳答案

尽管 FTPSClient 是一个 SocketClient,但我发现最好不要调用 setSocketFactory(SocketFactory)execProt(String) 这样的方法,甚至 FTPS 连接逻辑都会在内部调用 setSocketFactory(SocketFactory) 并撤消您的工作。

我建议将 SSL 上下文设置为构造函数的参数,和/或使用 setEnabledProtocols(String[])setTrustManager(TrustManager) 等方法为 Apache Commons 代码将在您的 FTPSClient 的生命周期内创建的无数 SocketFactory 对象设置条件。

仅供引用:TrustManager 对象和 SSLContext 对象可以配置为使用您自己的 trustStore 和/或 JVM 的默认 trustStore。

关于java - 如何在 apache FTPS 客户端中使用自定义套接字工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17830710/

相关文章:

php - PDO SSL - 奇怪的行为

python - 我正在开发一个网络抓取工具。我收到一条警告消息。我有多脆弱?

java - 通过默认 SSLSocketFactory 创建的 Socket 发送密码是否安全?

java - Java中的 key SSL套接字连接

java - 为什么我的 Postgres 游标内存不足?

java - 如何将 JSON 转换为具有 ManyToOne 关系的 POJO?

java - 如何将 %2f 传递给 java.net.URI 而不将其转换为/

java - libgdx 无法解析符号 Android

python - python中SSL客户端的正确证书目的是什么?

java rsa加密SSLSocket、android转java问题