33 votes

Comment puis-je empêcher l'ajout de Spring-Security; jsessionid = XXX pour les redirections de connexion?

Lorsqu'un client non authentifié demande une URL qui requiert un non-anonyme le niveau d'accès tel que défini dans l' security-config.xml, spring security envoie une redirection HTTP vers notre page de connexion (par exemple, /login). C'est très bien.

Le problème est qu'en l'absence d'une session existante (identifié par un cookie fournis dans la demande du client), le printemps des questions de sécurité une redirection qui précise également le client de la nouvelle session dans l'URL, par exemple, /login;jsessionid=8o7pglapojus.

De nombreux contenants à l'appui de cette (apparemment, il fonctionne très bien dans tomcat?), mais il semble que Jetty (qui est ce que nous utilisons pour le moment) n'est pas, l'URL redirigée vient grâce à notre URL routeur complètement intacte (y compris l' jsessionid "paramètre"), et la session n'est pas associé à l' /login demande par jetty/printemps-sécurité (c'est à dire un tout nouvel ID de session est fourni dans le Set-Cookie-tête de la réponse à l' /login demande).

On peut contourner ce par correspondance /login.* dans nos itinéraires, mais je suis curieux de savoir si il existe un moyen d'éviter l'émission de l'id de session dans l'authentification de redirection pour commencer.

43voto

BalusC Points 498232

Dans Spring Security 3.0.0 M1 ou plus récent, vous pouvez définir disable-url-rewriting="true" dans l'espace de noms <http> . Voyez si cela aide. Voir également cette demande de fonctionnalité .

8voto

Naeem Points 61

Maintenant, ça ressemble à ça.

 <security:http auto-config="false" use-expressions="true" disable-url-rewriting="true">
 

Après cela, votre application ne pourra pas effectuer correctement les travaux avec état.

1voto

ahmet alp balkan Points 7264

Une autre solution est là (pour ces Spring Security du tout c'est à dire moi-même)

http://randomcoder.com/articles/jsessionid-considered-harmful

Crée un wrapper de filtre de servlet et gère les gère.

0voto

cleverpig Points 124

@ahmet alp balkans:

seamframework fournir une meilleure solution que randomcoders. http://seamframework.org/Documentation/RemovingJSESSIONIDFromYourURLsAndFixingScache

@BalusC:

Si le développeur a utilisé le printemps de sécurité de l'FilterChainProxy pour mettre en œuvre la sécurité fonctionnalité,il suffit de ne pas utiliser d'espace de noms http.

Ensuite, nous ne pouvions pas trouver un moyen d'ajouter de désactiver-url-rewriting sans essayer d'ajouter un filtre à l'autre de la chaîne,ou d'insérer un indépendant filtre à web.xml.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X