【问题标题】:com.ibm.websphere.security.WSSecurityException: the realms do not matchcom.ibm.websphere.security.WSSecurityException:领域不匹配
【发布时间】:2010-08-11 15:45:19
【问题描述】:

我在尝试访问与客户端在同一 WAS 7.0 服务器上运行的 JAX-WS Web 服务时遇到此异常。

Caused by: javax.xml.ws.WebServiceException: java.io.IOException: Unable to deserialize the Subjects in this Context, cause: the realms do not match

我为用户身份验证设置了一个领域,并且该调用在禁用该领域的情况下可以正常工作。服务器和客户端都在同一个单元中运行。

我目前的想法是我的 Web 服务根本没有提供任何领域信息,导致了这个问题,所以我需要在我的 Web 服务中做一些事情来提供一个领域 - 但是什么?甚至 google-fu 在这方面都让我失望了!

【问题讨论】:

    标签: security websphere jax-ws realm


    【解决方案1】:

    Realm 设置在分配给调用的 LTPA 令牌中,客户端和服务器的领域需要匹配。

    即如果客户端验证用户并使用 realm="Ldap1:389" 设置和 LTPA 令牌,那么服务器需要设置相同的领域。或者它需要明确信任给定的领域。这可以在 WAS 管理控制台中设置,有关 LTPA 的说明,请查看此处: http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/csec_ltpa.html

    【讨论】:

    • ws-client 和 ws-server 都在同一个服务器上运行,并且定义了相同的领域...一定是我需要在服务中做的事情吗?
    • 哦,我想我的回答不太好。我不确定,但根据我的经验,如果 web 服务不进行身份验证,它不会期望 LTPA 令牌。但是,如果发送了一个,它仍然会尝试对其进行身份验证,所以也许您可以让 ws 调用不发送 LTPA 令牌?这必须在我认为的代码中完成?
    【解决方案2】:

    事实证明,我的本地基于文件的管理领域和我为用户登录设置的领域之间需要建立信任关系。

    WAS 似乎在幕后做了很多安全问题,但打开 WSSecurity 的跟踪输出有助于发现问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      相关资源
      最近更新 更多