gpt4 book ai didi

java - 从 Java bean 到 Web 服务的 SSL 连接问题

转载 作者:搜寻专家 更新时间:2023-11-01 03:29:48 26 4
gpt4 key购买 nike

我编写了一个通过 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 下运行的 war 文件的 Java bean (JSF) 中使用相同的技术时,我收到“PKIX 路径构建失败”错误。

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

所以我的问题是:

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

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

感谢您对此的任何意见!

/托比

最佳答案

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

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

我必须设置它:

HttpsURLConnection.setDefaultSSLSocketFactory(customSSLSocketFactory);

否则它似乎会被忽略。

/托比

关于java - 从 Java bean 到 Web 服务的 SSL 连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3576606/

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