10

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

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

Tomcatのjax-ws 2.1.3スタックでmetro 1.1スタック(1.1.5だと思います)を使用しています。

4

1 に答える 1

1

wsContext.getMessageContext().entrySet() を反復して値を表示してみてください。値が存在する場合もありますが、何らかの理由で getUserPrincipal() メソッドで取得できない場合があります。

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

于 2011-12-28T14:00:52.203 に答える