2010-11-18 11 views
0

J'essaye d'écrire une extension Chrome qui se connectera à mon application Grails en utilisant les capacités AJAX du plugin Spring Security Core. S'il n'y avait pas de connexion précédente et que je me connecte à partir de l'extension (ajax), cela fonctionne. Ensuite, si je me déconnecte (ajax), cela fonctionne aussi, mais toute autre connexion (ajax) échoue mais je reçois un succès ajax en me disant que le nom d'utilisateur est anonyme.Essayer d'obtenir Grails Connexion SSC AJAX pour travailler avec l'extension Chrome

Afin de réinitialiser les choses, j'ai besoin de me connecter/déconnecter via le login web standard (non-ajax) et je peux de nouveau se connecter/déconnecter une fois en utilisant ajax. Ensuite, je reçois à nouveau le nom d'utilisateur anonymousUser.

Comment puis-je résoudre ce problème, ou obtenir la sécurité Grails pour effacer le nom d'utilisateur comme la connexion/déconnexion normale non-ajax?

Peut-être que c'est quelque chose en rapport avec Chrome?

+0

En ajoutant un peu plus de code de débogage, je remarque que mon sessionId de l'objet d'authentification est nul après la déconnexion ajax par rapport à la déconnexion web normale. Cela pourrait-il être mon problème? – ahanson

+0

Je pense qu'il pourrait être Chrome, comme il semble quand je regarde les cookies, l'extension ne les met pas à jour comme le dit la réponse aussi. J'ai donc une vieille valeur jsessionid que Spring Security n'aime pas. – ahanson

Répondre

0

Il semble que ce soit un problème avec la sécurité des cookies dans Chrome. Je travaille toujours à essayer de comprendre les détails, mais pour contourner le problème, j'ai dû mettre le cookie jsessionid explicitement dans le code d'extension. Il me semble que si j'avais les permissions définies pour autoriser les requêtes XHR, ces permissions devraient également être appliquées aux cookies.