在我的 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 堆栈。