在我的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)。
答案 0 :(得分:1)
尝试迭代wsContext.getMessageContext()。entrySet()并显示值,有时它们在那里但由于某种原因不能通过getUserPrincipal()方法检索。
在这种情况下,只需直接从那里抓住你的校长,然后给你的评论留下一个不太便于携带的评论。