2010-07-19 4 views
3

나는 RememberMe 기능을 스프링 3 웹 애플리케이션에 통합하려고 시도하고 있습니다. 앱이 정상적으로 작동하며 다른 문제는 표시되지 않습니다.스프링 보안 RememberMeAuthenticationFilter가 실행되지 않음

"remember me"확인을 사용하면 쿠키가 올바르게 생성되어 모든 요청과 함께 전송됩니다 (Firebug 및 Chrome DevExtensions로 테스트했습니다).

브라우저를 닫았다가 다시 열면 쿠키는 계속 살아 있지만 보낼 수 있지만 RememberMe 필터는 실행되지 않고 체인의 다음 필터는 AnonymousFilter이며 사용자는 익명으로 인증되어 다시 로그인 페이지로 전송됩니다 .

왜 그런가?

ApplicationContext에 관련 부분은 다음과 같습니다

<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> 

로그는 다음과 같습니다

가까운 브라우저 & 전에 다시 :

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) 

을 다시는 후 :

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

최신 스프링 보안을 사용합니까? RememberMe는 3.0.1에서 깨졌으며 3.0.2에서 수정되었습니다. – axtavt

+0

Hello, Spring & Spring Security 3.0.3이 Maven에 의해 획득 됨. – alessino

답변

0

당신이 나를 기억하는 인증 공급자를 놓쳤는 지 확인하십시오.