Je souhaite configurer l'application Spring MVC en utilisant la sécurité Spring de la manière suivante.Spring Configuration de base de sécurité
- Une seule connexion simultanée est autorisée.
- Lorsque la session HTTP expire, l'utilisateur sera redirigé vers /security/sessionTimeout.html
- lorsque l'utilisateur se connecte en cas de succès, il sera redirigé vers le dossier "/".
- Lorsque les utilisateurs se déconnectent, il sera également redirigé vers "/".
je l'ai configurée de la manière suivante:
<security:http>
<security:form-login login-page="/security/login.html" login-processing-url="/login" authentication-failure-url="/login.jsp?login_error=1" default-target-url="/"/>
<security:session-management invalid-session-url="/security/sessionTimeout.html">
<security:concurrency-control max-sessions="1" />
</security:session-management>
<security:logout logout-url="/logout" logout-success-url="/"/>
</security:http>
et j'ai les questions suivantes:
- Je suis capable de se connecter avec le même compte sur 2 différents navigateurs (pas concurrency le contrôle fonctionne)
- Lorsque je clique sur la déconnexion, je suis redirigé vers "/security/sessionTimeout.html" au lieu de "/".
J'ai suivi le guide de référence de sécurité Spring. Qu'est-ce que je fais de mal?
Mise à jour: Voici à quoi ressemble mon fichier web.xml.
Mise à jour 2: il suffit d'exécuter log4j en mode débogage et ce que je suis en cliquant sur fermeture de session:
DEBUG [http-8080-2] (FilterChainProxy.java:375) - /index.html at position 1 of 11 in additional filter chain; firing Filter: 'ConcurrentSessionFilter'
DEBUG [http-8080-2] (FilterChainProxy.java:375) - /index.html at position 2 of 11 in additional filter chain; firing Filter: 'SecurityContextPersistenceFilter'
DEBUG [http-8080-2] (HttpSessionSecurityContextRepository.java:130) - No HttpSession currently exists
DEBUG [http-8080-2] (HttpSessionSecurityContextRepository.java:88) - No SecurityContext was available from the HttpSession: null. A new one will be created.
DEBUG [http-8080-2] (FilterChainProxy.java:375) - /index.html at position 3 of 11 in additional filter chain; firing Filter: 'LogoutFilter'
DEBUG [http-8080-2] (FilterChainProxy.java:375) - /index.html at position 4 of 11 in additional filter chain; firing Filter: 'UsernamePasswordAuthenticationFilter'
DEBUG [http-8080-2] (FilterChainProxy.java:375) - /index.html at position 5 of 11 in additional filter chain; firing Filter: 'BasicAuthenticationFilter'
DEBUG [http-8080-2] (FilterChainProxy.java:375) - /index.html at position 6 of 11 in additional filter chain; firing Filter: 'RequestCacheAwareFilter'
DEBUG [http-8080-2] (FilterChainProxy.java:375) - /index.html at position 7 of 11 in additional filter chain; firing Filter: 'SecurityContextHolderAwareRequestFilter'
DEBUG [http-8080-2] (FilterChainProxy.java:375) - /index.html at position 8 of 11 in additional filter chain; firing Filter: 'AnonymousAuthenticationFilter'
DEBUG [http-8080-2] (AnonymousAuthenticationFilter.java:67) - Populated SecurityContextHolder with anonymous token: 'org.sprin[email protected]9055c2bc: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: org.sprin[email protected]b364: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: null; Granted Authorities: ROLE_ANONYMOUS'
DEBUG [http-8080-2] (FilterChainProxy.java:375) - /index.html at position 9 of 11 in additional filter chain; firing Filter: 'SessionManagementFilter'
DEBUG [http-8080-2] (SessionManagementFilter.java:87) - Requested session IDD8429BBAAA9561A97E1D2350ED63BC35 is invalid.
DEBUG [http-8080-2] (SessionManagementFilter.java:90) - Starting new session (if required) and redirecting to '/security/sessionTimeout.html'
il se sent comme je filtre session de managment appliquée sur /index.html
puis aucune session n'existe. Comment puis-je le résoudre?
l'élément b) se produit probablement parce que vous n'avez autorisé l'accès à l'URL '/' par aucun utilisateur. – bluefoot
quelle version de ressort utilisez-vous? – Simeon
@Simeon, 3.0.5 et Spring 3.0.4 –