printemps de sécurité d'expiration de la session
- Je utiliser le Printemps de Sécurité 3 dans mon JSF2 webapp.
J'ai une règle de sécurité à fournir délais d'expiration de session:
<session-management invalid-session-url="/faces/paginas/autenticacion/login.xhtml?error=1" />
De sorte que lorsque la session a expiré et que l'utilisateur clique sur un lien, il est redirigé vers la page de connexion. Dans cette page, j'ai vérifier l'erreur param, et afficher un message à l'utilisateur indiquant que la session a expiré.
Mais j'ai 2 problèmes:
(1) Lorsque j'démarrage de l'application la première fois (il essaye de montrer la page d'accueil), je suis redirigé vers la page de connexion en disant session a expiré. Je pense que cela peut être dû au fait que la 1ère fois que vous exécutez l'application, la session est une nouvelle, et de la Sécurité Printemps peut-être "pense" il a expiré (ne fait pas la distinction entre une nouvelle session et un délai d'attente).
(2) Si la session a expiré pour les utilisateurs anonymes (pas encore authentifié), je suis redirigé vers la page de login timeout trop. Je ne veux pas ce comportement pour les utilisateurs non authentifiés, je veux juste vérifier les délais d'attente pour les utilisateurs authentifiés.
Comment puis-je remédier à ces deux problèmes?
Vous en remercie d'avance.
OriginalL'auteur choquero70 | 2012-01-23
Vous devez vous connecter pour publier un commentaire.
Vous souhaitez utiliser le
expired-session-url
propriété pour les sessions expirées, pas lainvalid-session-url
. Ils sont deux choses différentes.Pour obtenir la flexibilité que vous recherchez (être capable de différencier entre manquantes et invalides des séances de), vous devrez peut-être passer à un peu plus de la configuration avancée. Section11.3 de la documentation indique qu'il y a est un
expiredUrl
bien sur la simultanéité de filtre: static.springsource.org/spring-security/site/docs/3.0.x/...Merci, je vais essayer ce que vous avez dit. Ce sujet de problème (2) de ma question? Savez-vous comment vérifier les délais d'attente seulement pour les utilisateurs authentifiés? (pas pour l'anonymat des utilisateurs qui n'ont pas à s'authentifier encore).
Étant donné la manière dont les séances sont expirés (ie. ils cessent d'exister), il est difficile de dire si la personne a été authentifié ou non authentifiés. Vous utiliser un cookie supplémentaire (ou de manipuler le cookie de session) pour stocker de l'information, mais dans les deux cas, vous auriez probablement besoin de mettre en œuvre un filtre dans le Ressort de Sécurité du filtre de la chaîne d'intercepter et de traiter avec elle. Probablement, le Printemps de Sécurité a déjà un lieu de brancher votre propre gestionnaire de session, mais je ne sais pas du haut de ma tête. Je vous recommande fortement de le cadre de l'apprentissage en profondeur si vous avez besoin de personnaliser fortement.
Enfin, j'ai résolu ce problème avec une séance personnalisée de gestion de filtre. Voir ceci: Éviter de Délai d'attente pour ne pas les pages protégées
OriginalL'auteur cdeszaq