WSContext.getUserPrincipal()为密码摘要认证返回null

时间:2009-10-20 21:27:30

标签: java web-services jax-ws ws-security java-metro-framework

在我的WebService中,我需要记录调用者的id,但是即使使用带有密码身份验证的WS-Security对用户进行了身份验证,wsContext.getUserPrincipal()也会返回null。根据JavaDocs for JAX-WS 2.1,WSContext.getUserPrincipal()只应在用户未经过身份验证时返回null。

我是否必须在安全处理程序中执行某些操作才能将用户主体设置为WSContext?文档似乎表明它是自动完成的。

我在Tomcat上使用了带有jax-ws 2.1.3堆栈的metro 1.1堆栈(我认为是1.1.5)。

1 个答案:

答案 0 :(得分:1)

尝试迭代wsContext.getMessageContext()。entrySet()并显示值,有时它们在那里但由于某种原因不能通过getUserPrincipal()方法检索。

在这种情况下,只需直接从那里抓住你的校长,然后给你的评论留下一个不太便于携带的评论。