jaxwsを介してSSLWebサービス(クライアント証明書を含む)に接続するアプリケーションを作成しました。これを機能させるには、wsの信頼されたルート証明書を含むwstrust.jksと、wsに接続するときに使用するクライアント証明書であるclient.p12があります。次に、wsへの接続中にwstrust.jksとclient.12を使用できるようにカスタムSSLSocketFactoryを作成しました。私はjaxwsに私の実装を使用するように指示します:
[javax.xml.ws.BindingProvider] .getRequestContext()。put(JAXWSProperties.SSL_SOCKET_FACTORY、customSSLSocketFactory);
スタンドアロンのJavaアプリケーションとして実行すると、すべてが魅力のように機能します。ただし、Tomcatで実行されているwarファイルとしてデプロイされたJava Bean(JSF)内で同じ手法を使用すると、「PKIXパスの構築に失敗しました」というエラーが発生します。
しかし、Tomcatを起動するときに(-Djavax.net.ssl。*パラメーターを介して)JAVA_OPTSを介してSSLを構成すると、SSLが機能するようになります。
だから私の質問:
カスタムSSLSocketFactoryテクニックをJavaBean内で機能させるにはどうすればよいですか(または可能ですか)。
tomcatは自分のアプリケーションをラップしているので、Beanとして実行すると動作が異なり、カスタムSSLSocketFactoryを使用したいという希望は尊重されません...
これに関するご意見ありがとうございます!
/トッベ