공부 흔적남기기

SpringSecurity 로그인 실패시 Http 400보내는 방법 본문

web study/Spring

SpringSecurity 로그인 실패시 Http 400보내는 방법

65살까지 코딩 2022. 2. 13. 23:57
728x90
반응형

SpringSecurity에서 .formlogin을 이용하여 로그인을 할때 실패시 .failureUrl을 사용하면 Controller에서 redirect된 Url을 못잡는 문제가 발생하였다. 어떤 이유인지는 정확히 모르겠지만 잡히지 않는 문제가 생겨 .failHandler를 사용하는 방식으로 해결하였다.

 

.failHandler는 AuthFailureHandler 객체를 매개변수로 입력받는데 

우리는 AuthFailureHandler 구현체를 만들어fail 로직을 만들어주면된다.

로직은 간단하다.

@Component
public class AuthFailureHandler implements AuthenticationFailureHandler {

    @Override
    public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {
        response.sendError(400);
    }
}

Security를 설정하는 class에서 DI로 객체를 받은후 

.failureHandler(/*AuthFailureHandler 객체*/)
이런식으로 적어주면 끝이다!

이번 기회를 통해 문제가 계속해서 해결이 되지않으면 새로운 방식을 도입해보자는 유연한 생각해보자는 경험을 얻게되어 좋았다.

728x90
반응형