2010-07-19 4 views
3

Je tente d'intégrer la fonctionnalité RememberMe dans une application Web Spring 3. L'application fonctionne bien et ne montre aucun autre problème. Lorsque j'active le contrôle "Mémoriser mes informations", le cookie est correctement créé et envoyé avec n'importe quelle requête (je l'ai testé avec Firebug et Chrome DevExtensions). Lorsque je ferme et rouvre le navigateur, le cookie est toujours actif et envoyé, mais le filtre RememberMe n'est pas déclenché, le filtre suivant de la chaîne est AnonymousFilter, l'utilisateur est authentifié comme anonyme et renvoyé à la page de connexion. .Sécurité de printemps RememberMeAuthenticationFilter non déclenché

Une idée pourquoi?

La partie pertinente applicationContext est:

<security:http> 
    <security:intercept-url pattern="/" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
    <security:intercept-url pattern="/login.jsp*" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
    <security:intercept-url pattern="/stylesheets/**" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
    <security:intercept-url pattern="/javascripts/**" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
    <security:intercept-url pattern="/images/**" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
    <security:intercept-url pattern="/impianti/public/**" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
    <security:intercept-url pattern="/buoni/public/**" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
    <security:intercept-url pattern="/admin/*" access="ROLE_ADMIN" /> 
    <security:intercept-url pattern="/**" access="ROLE_USER" /> 
    <security:form-login login-page="/login.jsp" authentication-failure-url="/login.jsp" default-target-url="/index.html" /> 
    <security:http-basic /> 
    <security:logout logout-success-url="/login_redirect.jsp" logout-url="/logout" /> 
    <security:remember-me/> 
</security:http> 

<security:authentication-manager> 
    <security:authentication-provider> 
     <security:password-encoder hash="md5" /> 
     <security:jdbc-user-service data-source-ref="dataSource"/> 
    </security:authentication-provider> 
</security:authentication-manager> 

Les journaux sont:

Avant le navigateur Fermer & rouvrir:

DEBUG: org.springframework.security.web.FilterChainProxy - /index.html at position 7 of 11 in additional filter chain; firing Filter: 'org.springframework.securi[email protected]1420fea' 
DEBUG: org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter - SecurityContextHolder not populated with remember-me token, as it already contained: (etc) 

Après la réouverture:

DEBUG: org.springframework.security.web.FilterChainProxy - /login.jsp at position 7 of 11 in additional filter chain; firing Filter: 'org.springframework.securi[email protected]1420fea' 
DEBUG: org.springframework.security.web.FilterChainProxy - /login.jsp at position 8 of 11 in additional filter chain; firing Filter: 'org.springfram[email protected]230be4' 
DEBUG: org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Populated SecurityContextHolder with anonymous token: 'org.sprin[email protected]905571d8: Principal: anonymousUser; Password: [PROTECTED]; Authenticated: true; Details: org.sprin[email protected]0: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: 96789943A570362DE4B0113A5262F0CB; Granted Authorities: ROLE_ANONYMOUS' 
+0

Utilisez-vous la dernière version de Spring Security? RememberMe a été brisé en 3.0.1, corrigé en 3.0.2. – axtavt

+0

Bonjour, Spring & Spring Security 3.0.3 obtenu par Maven. – alessino

Répondre

0

Vérifiez si vous avez manqué le fournisseur d'authentification remember me.

Questions connexes