我正在使用 FTPClient 与 FTP 服务器进行通信。它工作完美。
Apache 为 FTPSClient 提供 API 以使用 SSL/TLS 与 FTP 服务器通信。但它是使用自己的套接字工厂。所以,我无法访问套接字会话。
我想创建自定义套接字工厂,并手动处理套接字会话。
请帮我。
我正在使用 FTPClient 与 FTP 服务器进行通信。它工作完美。
Apache 为 FTPSClient 提供 API 以使用 SSL/TLS 与 FTP 服务器通信。但它是使用自己的套接字工厂。所以,我无法访问套接字会话。
我想创建自定义套接字工厂,并手动处理套接字会话。
请帮我。
虽然FTPSClient
是 a SocketClient
,但我发现最好不要 setSocketFactory(SocketFactory)
像方法那样调用它execProt(String)
,甚至 FTPS 连接逻辑也会对您的工作进行内部调用setSocketFactory(SocketFactory)
并撤消您的工作。
我建议将 SSL 上下文设置为构造函数的参数,和/或使用 和 等方法为setEnabledProtocols(String[])
Apache setTrustManager(TrustManager)
Commons 代码将在 FTPSClient 的生命周期内创建的无数 SocketFactory 对象设置条件。
仅供参考:TrustManager
对象和SSLContext
对象可以配置为使用您自己的 trustStore 和/或 JVM 的默认 trustStore。