2010-08-11 98 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