2014-05-24 1 views
2

로그인 실패시 사용자를 오류 페이지로 리디렉션하고 의미있는 오류 메시지를 표시하려고합니다. 후속 요청에 전달 될 플래시 속성을 추가 할 수 있습니까?사용자 정의 AuthenticationFailureHandler의 플래시 속성

아래에 제시된 코드는 작동하지 않습니다. RequestContextUtils.getOutputFlashMap()는 null을 리턴합니다.

public class CustomAuthenticationFailureHandler implements AuthenticationFailureHandler{  
@Override 
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, 
     AuthenticationException exception) throws IOException, ServletException { 

    FlashMap outputFlashMap = RequestContextUtils.getOutputFlashMap(request); 
    if (outputFlashMap != null){    
     outputFlashMap.put("error", "Error message"); 
    } 
    response.sendRedirect(request.getContextPath()+"/error");  
} 

}

답변

1

나는 플래시 맵이 봄의 DispatcherServlet 요청이이 시점에서 통과되지 않은에 의해 유지되는 반면, 당신은, 필터 체인에서 함수를 호출하기 때문에이 널 같아요 것입니다.

매개 변수를 사용하지 않는 이유는 무엇입니까? 즉

response.sendRedirect(request.getContextPath()+"/error?error=" + "Error Message"); 
+1

다른 옵션이 없으면 수행 할 수 있지만 검색어 문자열에 매개 변수를 공개하지 않는 것이 좋습니다. – Ramps