2010-08-11 20 views
0

Je reçois cette exception lorsque j'essaie d'accéder à un service Web JAX-WS s'exécutant sur le même serveur WAS 7.0 que le client.com.ibm.websphere.security.WSSecurityException: les domaines ne correspondent pas

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

J'ai un royaume mis en place pour l'authentification utilisateur et cet appel fonctionne très bien avec ce domaine désactivé. Le serveur et le client s'exécutent dans la même cellule. Mon idée actuelle est que mon service web ne fournit aucune information sur le domaine, ce qui me cause ce problème, donc je dois faire quelque chose dans mon service web pour fournir un domaine - mais quoi? Même google-fu me manque sur celui-ci!

Répondre

0

Il est avéré être qu'il fallait avoir une relation de confiance entre mon royaume d'administration basé sur des fichiers local et le royaume J'ai mis en place pour mes utilisateurs de se connecter avec. WAS semble faire beaucoup de gabbins de sécurité sous les couvertures, mais activer la sortie de trace pour WSSecurity aide à faire la lumière sur les problèmes.

0

Le domaine est défini dans le jeton LTPA affecté à l'appel et les domaines du client et du serveur doivent correspondre.

I.e. Si le client authentifie l'utilisateur et définit le jeton LTPA avec realm = "Ldap1: 389", le serveur doit avoir le même ensemble de domaines. Ou il doit explicitement faire confiance au domaine donné. Cela peut être mis en place dans WAS console d'administration, pour une explication de LTPA ont un coup d'oeil ici: 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 et ws-server s'exécutent sur le même serveur avec le même domaine défini ... dois-je faire quelque chose dans le service? – Brabster

+0

Oh, je suppose que ma réponse n'était pas très bonne. Je ne suis pas sûr mais de mon expérience si le webservice ne fait aucune authentification il ne s'attendra pas à un jeton de LTPA. Mais si l'un d'eux est envoyé, il essayera toujours de l'authentifier, alors peut-être que vous pouvez faire en sorte que l'appel ws n'envoie pas un jeton LTPA? Cela doit être fait dans le code, je pense? –