Spring Security Form Login을 커스텀해 로그인을 구현습니다.
그런데 로그인에 성공했지만 클라이언트에게 404가 반환되었고, 로그인에 실패했을 때는 html이 반환되는 문제가 발생했습니다.
성공했을 때
실패했을 때
Form Login은 기본적으로 HTTP 리다이렉션을 반환하기 때문입니다.
존재하지 않는 페이지를 반환해 404 에러가 나온 것이고, 로그인 실패 시에는 기본 제공 로그인 페이지가 리다이렉션 되어 사용자에게 전달된 것입니다.
프론트엔드에서 페이지 작업을 따로 할 예정이기 때문에, API 호출에 대한 성공 여부만 반환 받고 싶었습니다. 그래서 인증 성공, 실패 핸들러를 만들어 Security와 연결시켰습니다!
개발환경
Spring Boot 3 / Spring Security 6
AuthenticationSuccessHandler 인터페이스를 구현해 성공 핸들러 클래스를 만듭니다.
AuthenticationFailureHandler 인터페이스를 구현해 실패 핸들러 클래스를 만듭니다.
401
: 권한 없음)시큐리티 설정에 만든 핸들러를 연결시킵니다.
원했던 결과 값을 받을 수 있습니다!