Apache SocketFactory是否与java.net SocketFactory兼容?

Apache SocketFactory是否与java.net SocketFactory兼容?,java,solr,https,ssl-certificate,apache-httpclient-4.x,Java,Solr,Https,Ssl Certificate,Apache Httpclient 4.x,我正在使用Apache的DefaultHttpClient发出请求,我需要覆盖SSL调用,以便可以向其附加自定义SSLSocketFactory(基本上是客户端证书)。为此,我创建了一个新的自定义方案和连接管理器,并在httpClient创建时传递它们: ... new Scheme("https", 443, thirdPartySocketFactory); ... DefaultHttpClient httpClient = new DefaultHttpClient(ccm); ...

我正在使用Apache的DefaultHttpClient发出请求,我需要覆盖SSL调用,以便可以向其附加自定义SSLSocketFactory(基本上是客户端证书)。为此,我创建了一个新的自定义方案和连接管理器,并在httpClient创建时传递它们:

...
new Scheme("https", 443, thirdPartySocketFactory);
...
DefaultHttpClient httpClient = new DefaultHttpClient(ccm);
...
方案创建时传递的
thirdPartySocketFactory
是此处的重要部分。顾名思义,它来自一个第三方库,该库自动处理与JBoss服务器的相互证书身份验证。也就是说,它将客户端证书+密码附加到每个出站请求

调用本身也是从JBoss服务器进行的(我实际上是在它上面托管SOLR,这就是为什么首先需要Apache调用的原因)

问题是,
thirdPartySocketFactory
对象的类型是
javax.net.SocketFactory
,而不是apache方案所需的
org.apache.http.conn.scheme.SocketFactory
(请参阅)

问题:有没有办法通过某种包装器很好地解决这个问题?我原以为ApacheSocketFactory会以某种方式继承javax.net版本,但它看起来不像

或者,我可以创建一个真正定制的apachesslsocketfactory(请参阅),包括truststore等,但在其他选项用尽之前,我真的不想继续下去。主要原因是,
thirdPartySocketFactory
方法经过了尝试和测试


谢谢

自4.2版以来,已有
SSLSocketFactory#SSLSocketFactory(javax.net.ssl.SSLSocketFactory-socketfactory,X509HostnameVerifier-hostnameVerifier)
。此构造函数用作任何任意JSSE SSLSocketFactory实现的适配器。

谢谢!没有注意到,因为构造函数文档没有包含包名(尽管它确实链接到javadoc)。