【问题标题】:WSContext.getUserPrincipal() returns null for password digest authenticationWSContext.getUserPrincipal() 为密码摘要身份验证返回 null
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 2010-11-03
    • 2021-09-27
    • 1970-01-01
    • 2018-12-09
    相关资源
    最近更新 更多