私の 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だと思います)を使用しています。