IBM WebSphere から .Net WS を使用したいと考えています。
IIS で .Net WS を使用する JAX-WS IBM 実装で WS クライアントを作成しました。クライアントは SUSE 上にあり、認証は Windows Server 2003 Active Directory を使用した NTLM によって行われます。
クライアントがコマンド ラインで実行される場合、実装は java.net.Authenticator を呼び出して資格情報を取得し、要求は成功します。
クライアントが RAD 内で実行される場合、Authenticator は呼び出されず、401 で失敗します。
クライアントが WebSphere 内で実行される場合、Authenticator は呼び出されず、401 で失敗します。
.Net WS URL への HttpConnection を直接作成すると、Authenticator が呼び出され、リクエストが成功します。
JAX-WS IBM 実装の代わりに Axis2 (IBM Axis2 JAX-WS 実装ではなく直接) を使用すると、Authenticator オブジェクトを Axis2 クライアントに渡すことができ、要求は成功します。これは、Windows Server 2003 の NTLM プロトコルでのみ機能します。Windows Server 2008 に移行すると、認証プロトコルは NTLMv2 になり (NTLM のセキュリティ上の問題により、誰もが NTLMv2 に移行します)、NTLMv2 は HTTP クライアント 3 でサポートされていないため、要求は失敗します。 Axis2 の依存関係である X。そしてしばらくの間、彼らは移住するつもりはありません。
IBM 以外の JAX-WS 実装を使用すると、コンソール管理と自動注釈読み取りが失われ、さらに IBM からのサポートが失われます。
質問
なぜ RAD の内部で動作しなかったのかわかりません。コマンド ラインから動作するのと同じプログラムです。
JAX-WS IBM 実装を、特定の資格情報を使用した NTLMv2 プロトコル サポートで認証するにはどうすればよいですか? (java.net.Authenticator はこれを提供します。これを呼び出す必要があります ... 呼び出しません)
IBM JAX-WS 実装で標準以外の HTTP クライアントを使用する方法はありますか?
IBM JVM 実装でさえ NTLM 認証を提供します (これが、コマンド ラインと HttpConnection の直接実行が機能する理由です)。そのため、IBM WS スタックに NTLM 認証を使用しない理由がわかりません。
プラスポイント
ActiveDirectory 認証で WS を使用する双方向機能を提供する良い方法はありますか?
コメント
Spring WS は、NTLMv2 認証をサポートする HttpClient 4.X を使用しますが、JAX-WS 実装が必要であり、それはIBM のものである必要があります。IBM JAX-WS は Basic AUTH のみをサポートしているようです。Microsoft WS 相互運用性が IBM にとって重要ではない理由がわかりません。
参考文献
オーセンティケータ設定:
https://stackoverflow.com/a/5994706/14811
前もって感謝します!