본문으로 바로가기

[SpringBoot] SpringSecurity failureHandler 구현

category Spring Boot 2022. 11. 17. 15:23

SpringSecurity failureHandler 구현

전 포스팅에서 SpringSecurity 의 config 설정과 UserDetailService설정을 완료하여 로그인을 구현하였다.

이어서 로그인을 실패 할 경우 메시지를 나타내기 위해 failureHandler를 구현해보겠다.

 

 

SpringSecurity의 config 설정에 failureHandler 설정 추가

 

  • 해당 메소드에 failureHandler를 설정해주었으며 , LoginfailureHandler라는 파일을 생성하였다.

LoginfailureHandler 작성

 

  • SimpleUrlAuthenticationFailureHandler를 extends 해주었다.
  • 로그인에 실패했을때 에러메시지를 출력하기 위해 해당 오류에 대한 Exception을 선언하고 그에 대한 message 내용을 설정해 주었다.
  • 작성후 로그인 메시지를 보낼 url에 해당 값을 보내주었다.

login Controller 수정

@RequesParam

 

  • RequestParam으로 required = false를 해주면, 값이 null 일때는 해당 값을 적용 안하도록 만든다.
  • LoginfailureHandler에서 넘겨받은 error와 exception을 RequestParam으로 받고, 로그인 실패가 되었을때, model로 해당 값을 넘겨주도록 만들었다.

 

 Error에 대한 html 수정

  • th:if로 error가 true일때 , th:text에 exception에 대한 message가 나오도록 설정하였다.

 

html 확인

  • 위 화면과 같이 로그인 오류가 나왔을때 에러 메시지가 출력되는 모습을 볼 수있다.

 

이것으로 SpringSequrity 로그인, 로그아웃에 대한 기본 설정이 끝났다. 이제 프로젝트를 제대로 진행 해봐야겠다.