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