【问题标题】:SSL Connection problem to web service from Java bean从 Java bean 到 Web 服务的 SSL 连接问题
【发布时间】:2011-04-04 08:18:18
【问题描述】:

我编写了一个通过 jaxws 连接到 SSL Web 服务(包括客户端证书)的应用程序。为此,我有一个 wstrust.jks,其中包含 ws 的受信任根证书,而 client.p12 是连接到 ws 时要使用的客户端证书。然后,我创建了一个自定义 SSLSocketFactory,以便能够在连接到 ws 期间使用我的 wstrust.jks 和 client.12。我告诉 jaxws 使用我的实现:

[javax.xml.ws.BindingProvider].getRequestContext().put(JAXWSProperties.SSL_SOCKET_FACTORY, customSSLSocketFactory);

如果我将它作为独立的 java 应用程序运行,一切都会像魅力一样运行。但是,当我在部署为在 Tomcat 下运行的战争文件的 Java bean (JSF) 中使用相同的技术时, 我收到“PKIX 路径构建失败”-错误。

但是如果我在启动 Tomcat 时通过 JAVA_OPTS 配置 SSL(通过 -Djavax.net.ssl.* 参数),我可以让它工作。

所以我的问题:

我如何(或有可能)让我的自定义 SSLSocketFactory 技术在 Java bean 中工作?

我猜想当 tomcat 将自己包裹在我的应用程序中时,当作为 bean 运行时,它的工作方式有所不同,我希望使用自定义 SSLSocketFactory 没有得到尊重......

感谢您对此的任何意见!

/托比

【问题讨论】:

    标签: java tomcat jsf ssl webservice-client


    【解决方案1】:

    解决了。如果有人有同样的问题,这里是如何。而不是通过以下方式设置我的自定义工厂:

    [javax.xml.ws.BindingProvider].getRequestContext().put(JAXWSProperties.SSL_SOCKET_FACTORY, customSSLSocketFactory);

    我不得不设置它:

    HttpsURLConnection.setDefaultSSLSocketFactory(customSSLSocketFactory);

    否则它似乎会被忽略。

    /托比

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 2019-02-08
      • 2018-08-31
      • 2011-04-17
      • 2016-11-12
      • 1970-01-01
      相关资源
      最近更新 更多