2009-10-20 3 views
10

私のWebサービスでは、呼び出し元のIDを記録する必要がありますが、ユーザーがパスワード認証でWS-Securityを使用して認証されていてもwsContext.getUserPrincipal() JAX-WS 2.1のJavaDocsによると、WSContext.getUserPrincipal()は、ユーザーが認証されていない場合のみ、nullを返す必要があります。WSContext.getUserPrincipal()はパスワードダイジェスト認証のためにnullを返します

セキュリティプリンシパルでユーザープリンシパルをWSContextに設定する必要がありますか?ドキュメントは自動的に行われることを示しているようです。

私はTomcatのjax-ws 2.1.3スタックを使ってメトロ1.1スタック(1.1.5と思います)を使用しています。

+0

これが現在動作しているのだろうかと思います。 私の過去のプロジェクトの1つでは、WSContext.getUserPrincipal()を使用していました。しかし、私たちはHTTP基本認証を行っていました。 –

+0

メトロ1.1はかなり古く、おそらくメトロ1.4がこの問題を解決しています。一方、あなたのWsContextダンプはすべてここに追加できますか? – korifey

答えて

1

wsContext.getMessageContext()。entrySet()を反復して値を表示することもありますが、getUserPrincipal()メソッドでは取得できないことがあります。

この場合、そこから直接あなたのプリンシパルを直接取得して、これは非常に移植性がないとあなたに将来のコメントを残してください。

+0

+1「将来のあなたにコメントを残してください...」 –