gpt4 book ai didi

java - Apache SocketFactory 与 java.net SocketFactory 兼容吗?

转载 作者:行者123 更新时间:2023-11-30 11:32:42 24 4
gpt4 key购买 nike

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

...
new Scheme("https", 443, thirdPartySocketFactory);
...
DefaultHttpClient httpClient = new DefaultHttpClient(ccm);
...

在创建Scheme 时传递的thirdPartySocketFactory 是这里的重要部分。顾名思义,它来自第三方库,可自动处理与 JBoss 服务器的相互证书身份验证。即,它将客户端证书 + 密码附加到每个出站请求。

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

问题 是,thirdPartySocketFactory 对象的类型是javax.net.SocketFactory,而不是org.apache.http。 Apache Scheme 需要的 conn.scheme.SocketFactory(参见 here)。

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

或者,我可以创建一个真正自定义的 Apache SSLSocketFactory(请参阅 here),完成信任库等,但我真的不想在其他选项用尽之前继续下去。主要原因是,thirdPartySocketFactory 方法已经过测试。

谢谢!

最佳答案

SSLSocketFactory#SSLSocketFactory(javax.net.ssl.SSLSocketFactory socketfactory, X509HostnameVerifier hostnameVerifier) 从版本 4.2 开始。此构造函数用作任何任意 JSSE SSLSocketFactory 实现的适配器。

关于java - Apache SocketFactory 与 java.net SocketFactory 兼容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16478739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com