我正在使用 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/