로그인 실패시 값을 기억하고 로그인 페이지를 다시 열 수 있습니까? 컨트롤러에서 _spring_security_remember_me의 값을 얻을 수 있습니까?스프링 보안 - 로그인 실패시 나를 기억하십시오.
로그인 오류가 발생하면 확인란의 값을 유지하면됩니다.
로그인 실패시 값을 기억하고 로그인 페이지를 다시 열 수 있습니까? 컨트롤러에서 _spring_security_remember_me의 값을 얻을 수 있습니까?스프링 보안 - 로그인 실패시 나를 기억하십시오.
로그인 오류가 발생하면 확인란의 값을 유지하면됩니다.
다음과 같은 솔루션을 시도 할 수 있습니다 다른 매개 변수 추가) 우리는 로그인 폼 및 스프링 로그인 처리 필터의 스프링 표현을 사용자 정의해야합니다.
<authentication-manager alias="authenticationManager"/>
<beans:bean id="myFilter" class="test.MyAuthenticationProcessingFilter">
<custom-filter position="AUTHENTICATION_PROCESSING_FILTER" />
<beans:property name="defaultTargetUrl" value="/initialize.action"/>
<beans:property name="authenticationFailureUrl" value="/login_failed.action"/>
<beans:property name="authenticationManager" ref="authenticationManager"/>
<beans:property name="alwaysUseDefaultTargetUrl" value="true"/>
<beans:property name="filterProcessesUrl" value="/perform_login"/>
</beans:bean>
<beans:bean id="entryPoint" class="org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint">
<beans:property name="loginFormUrl" value="/login.action"/>
</beans:bean>
MyAuthenticationProcessingFilter는 스프링의 org.springframework.security.ui.webapp.AuthenticationProcessingFilter 연장 요청 파라미터를 획득하고 내부 HTTP 세션을 저장 attemptAuthentication 방법 랩 여기에 구성된다. 이 클래스는 아이디어를 보여주기 위해 작성되었습니다. 더 나은 연습을 위해 사용자 이름과 암호 매개 변수에 대한 AuthenticationProcessingFilter 코드를 찾아보십시오.
공용 클래스 MyAuthenticationProcessingFilter가의 AuthenticationProcessingFilter를 확장 {당신은 알 수
@Override
public Authentication attemptAuthentication(HttpServletRequest request)
throws AuthenticationException {
String param = request.getParameter("_spring_security_remember_me");
HttpSession session = request.getSession();
if (session != null || getAllowSessionCreation()) {
session.setAttribute("_spring_security_remember_me", param);
}
return super.attemptAuthentication(request);
}
}
그 "myFilter"와 "엔트리 포인트"콩이 함께 달리 내부 요소에 의해 정의 된 매개 변수를 정의합니다. 기본 동작을 원할 때 사용합니다. 그러나 우리의 경우에는 사용자 정의 빈을 사용하므로 요소를 완전히 제거해야합니다. 이제 콩을 사용하도록 알릴 필요가 있습니다.
<http entry-point-ref="entryPoint">
...
<!-- no form-login here -->
</http>
:
<beans:bean id="myFilter" class="test.MyAuthenticationProcessingFilter">
<custom-filter position="AUTHENTICATION_PROCESSING_FILTER" />
...
</beans:bean>
"엔트리 포인트"속성을 사용하여 전달되는 "myFilter"빈은 빈 정의 내부 소자를 사용하여 스프링 체인에 전달
귀하의 질문에 약간의 불확실성이 있습니다. 그렇지 않으면 스프링 보안이 작동하는 방식을 기억하는 방식이 잘못되었습니다. 봄 보안 참조 11 장을 읽고 "기억 - 나 인증"은 이런 식으로 작동
간단히 :
사용자가 자신의 사용자 이름과 암호를 사용하여 성공적으로 로그인하고 나에게 체크 박스를 기억하도록 설정 한 경우를, 스프링 시큐리티는 사용자를 확인하고 사용자에게 "보내기"쿠키를 생성합니다.
로그인하지 않았습니다. 사용자가 보안 페이지 (인증 필요)를 요청하면 스프링은 유효한 쿠키인지 확인합니다. 그는 로그인 페이지로 그를 전달합니다 유효한 쿠키 스프링이없는 경우 "자동으로"그를 "로그인"그에게
이 정보가 도움이되기를 바랍니다. HTTP 세션을 얻을이 필터 내부에 스프링 보안 필터 체인 2에 1. 사용자 정의 필터와 우리가 로그인 폼을 변경하면 (이 요청 매개 변수
의 값을 저장 :