繁体   English   中英

在WildFly / CXF Web服务客户端中使用DefaultSSLSocketFactory

[英]Use DefaultSSLSocketFactory in WildFly/CXF Webservice client

我希望有人可以帮助我。 我正在使用以下内容:

  • 野蝇9
  • jbossws-cxf-*-5.0.0。最终
  • cxf-core-3.0.5

我正在处理与HTTPS握手中与SNI相关的合作伙伴端点的集成问题。 在另一个站点( 此处 )之后,我已经能够创建一个自定义SSLSocketFactory并将其设置为默认SSLSocketFactory,但是随后遇到了CXF不使用默认SSLSocketFactory( 此处 )的问题。 到目前为止,我还没有找到一种方法来通知CXF通过配置使用默认的SSLSocketFactory。

通过调试,我能够将TLSClientParameters上的httpsURLConnectionDefaultHostnameVerifier设置为true,并确认可以解决此问题。 我还看到了许多帖子,这些帖子暗示可以通过配置文件(JBoss WS config或CXF config)或启动参数来设置此值,但是我找不到能够做到这一点的方法。

还有其他人能够做到这一点吗?如果可以,您可以分享如何做?

因此,我能找到的关于这个特定问题的唯一答案是蛮力的/丑陋的,但是希望此举可以在以后减轻某人的痛苦。

  1. 我创建了一个自定义SSLSocketFactory并将其设置为启动时的默认值。
  2. 该工厂将返回一个自定义连接实现,该实现将扩展CXF并扩展SOAPConnectionImpl,从而将TLSClientParameters上的setUseHttpsURLConnectionDefaultSslSocketFactory设置为true。
  3. 依次在URLConnectionHTTPConduit上设置
  4. 最后,我不得不使用ThreadLocal类来保存由自定义SSLSocketFactory使用的主机名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM