2010-08-11 83 views
0

当试图访问运行在与客户端相同的WAS 7.0服务器上的JAX-WS webservice时,出现此异常。com.ibm.websphere.security.WSSecurityException:领域不匹配

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服务中做一些事情来提供一个领域 - 但是什么?即使谷歌福在这一个失败我!

回答

0

它原来是那里是我的本地基于文件的管理领域与领域之间的信任关系需要我为我的用户设置了登录。

WAS似乎在封面下做了很多安全gubbins,但为WSSecurity开启trace输出有助于解决问题。

0

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

I.e.如果客户端认证了用户并设置了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

+0

ws-client和ws-server都在定义了相同域的同一台服务器上运行......必须是我需要在服务中执行的操作? – Brabster 2010-08-13 09:25:44

+0

哦,我想我的答案不是那么好。我不确定,但从我的经验来看,如果web服务没有进行身份验证,它不会期望LTPA令牌。但是如果发送了它,它仍然会尝试授权它,所以也许你可以让ws调用不发送LTPA令牌?这必须在我认为的代码中完成? – 2010-08-14 16:27:07