在我的Web服务中,我需要记录调用者的ID,但是即使使用WS-Security和密码认证对用户进行了认证,wsContext.getUserPrincipal()仍返回null。根据JAX-WS 2.1的JavaDocs,如果用户未通过身份验证,则WSContext.getUserPrincipal()仅应返回null。

我是否必须在安全处理程序中做一些事情才能将用户主体设置为WSContext?该文档似乎表明它是自动完成的。

我在Tomcat上使用了Metro 1.1堆栈(我认为是1.1.5)和jax-ws 2.1.3堆栈。

最佳答案

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

在这种情况下,只需直接从那里捕获您的负责人,并向您发表评论,这不是很方便。

关于java - WSContext.getUserPrincipal()返回空以进行密码摘要身份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1597421/

10-09 09:41