wsdl2java で Web サービスを使用するためのスタブ クラスを作成しましたが、トランスポート用のクライアント証明書を指定する必要があります。どうすればいいですか?
.NET では、呼び出しを行う前に X509Certificate オブジェクトを同様のスタブ クラスに直接アタッチできることに慣れています。
wsdl2java で Web サービスを使用するためのスタブ クラスを作成しましたが、トランスポート用のクライアント証明書を指定する必要があります。どうすればいいですか?
.NET では、呼び出しを行う前に X509Certificate オブジェクトを同様のスタブ クラスに直接アタッチできることに慣れています。
Java では、いくつかのオプションがあります。
java.net.ssl*
、証明書ストア、パスワードなどkeytool
を設定します。これらのオブジェクトの設定に使用する必要があります。コードは次のとおりです。または、コマンド ラインで -D を使用して指定することもできます。これらはアプリに対してグローバルになることに注意してください。
System.setProperty("javax.net.ssl.keyStore", "myKeyStore.p12");
System.setProperty("javax.net.ssl.keyStoreType", "pkcs12");
System.setProperty("javax.net.ssl.keyStorePassword", "password");
SSLFactory
下位レベルで証明書を構成するカスタムを作成し、WS コンテキストに設定します。これをグーグルで検索すると、そこにたくさんの情報が見つかります。この質問も確認してください(著者はJAX-RPC用だと言っていますが、コメントで実装をJAX-WSに変更しています)。詳細については、JSSE ドキュメント(Java 1.5 の場合) を参照してください。