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