【发布时间】:2010-12-08 12:27:35
【问题描述】:
在我的 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 堆栈。
【问题讨论】:
-
我想知道这是否有效。在我过去的一个项目中,我们使用了 WSContext.getUserPrincipal() 并且它正在工作。但是我们正在进行 HTTP 基本身份验证。
-
Metro 1.1 已经很老了,也许 Metro 1.4 可以解决这个问题。另一方面,您能否在此处附加所有 WsContext 转储?
标签: java web-services jax-ws ws-security java-metro-framework