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'
최신 스프링 보안을 사용합니까? RememberMe는 3.0.1에서 깨졌으며 3.0.2에서 수정되었습니다. – axtavt
Hello, Spring & Spring Security 3.0.3이 Maven에 의해 획득 됨. – alessino