10

在我的 WebService 中,我需要记录调用者的 ID,但 wsContext.getUserPrincipal() 会返回 null,即使用户已使用 WS-Security 和密码身份验证进行身份验证。根据 JAX-WS 2.1 的 JavaDocs WSContext.getUserPrincipal() 只有在用户未通过身份验证时才应返回 null。

我必须在安全处理程序中做些什么来将用户主体设置到 WSContext 中吗?文档似乎表明它是自动完成的。

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

4

1 回答 1

1

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

在这种情况下,只需直接从那里抓住你的校长,然后给未来的你留下评论,说这不是很便携。

于 2011-12-28T14:00:52.203 回答