2014-06-10 4 views
0

내가 봄 보안으로 구성한 실패 로그인 폼에?스프링 MVC는

사용자가 3 번 로그인하지 못했을 때 사용자를 등록 페이지로 리디렉션 할 수 있습니까?

<c:if test="${not empty error}"> 
    <div class="error">${error}</div> 
</c:if> 

그 방법을 처음 오류 매개 변수는 오류 메시지 비어 있습니다 로그인을 탐색 할 때 :

답변

1

귀하의 첫 번째 질문의 답변 -> (1) 당신은 AuthenticationFailureHandler 클래스를 확장하여 CustomAuthenticationFailureHandler을 만들 수 있습니다. > 당신이 할 수있는 -

@Override 
    public void onAuthenticationFailure(HttpServletRequest request, 
      HttpServletResponse response, AuthenticationException exception) 
      throws IOException, ServletException { 
     saveException(request, exception); 
     redirectStrategy.sendRedirect(request, response, 
       request.getHeader("referer")); 

    } 

(3) 구성 파일에서 대신 failureUrl의

@Bean 
    public CustomAuthenticationFailureHandler customAuthenticationFailureHandler() { 
     return new CustomAuthenticationFailureHandler(); 
    } 


http.failureHandler(customAuthenticationFailureHandler()) 

두 번째 질문의 답변을이 코드를 추가 (2) CustomAuthenticationFailureHandler의 onAuthenticationFailure 방법,이 코드를 작성 세션 또는 데이터베이스를 사용하여 실패한 시도를 저장하십시오. 3 번의 실패 시도 후에는 리디렉션 할 url 만 변경하면됩니다.

0

일반적인 방법은 로그인 페이지 (failureUrl("/login?error"))로 돌아가서 로그인 폼보기에서하는 것입니다 표시되지 않습니다.

+0

로그인 페이지가 없어서 사용자가 내 웹 사이트의 아무 곳이나 모달 창을 통해 로그인 할 수 있습니다. – ilopezluna