작성
·
446
0
항상 강의 잘 듣고있습니다. 강사님!
강의도중
if(userEntity==null){
throw new UsernameNotFoundException("userName is Not");
}
잘못된 정보로 로그인을 요청했을때 UsernameNotFoundException을 throw 하는데
이상하게 디버그 모드로도 Null 값이 반환되는데
status 코드는 401번에 message가 정상적으로 출력되지 않아서
질문드립니다!
답변 1
0
안녕하세요, 이도원입니다.
UserService의 loadUserByUsername 메소드에서 사용자 정보를 찾지 못했을 때 발생하는 UsernameNotFoundException은 AbstractUserDetailsAuthenticationProvider.class에서 처리되는데, 아래 디버깅 이미지(AbstractUserDetailsAuthenticationProvider 코드입니다)에서 보시는 것 처럼, 정의한 UsernameNotFoundException이 아니라, BadCrednticalsException으로 변경되어 반환되는 것을 볼 수 있습니다. AbstractUserDetailsAuthenticationProvider를 구현한 DaoAuthenticationProvider를 커스터마이징 해서 사용하시면 원하시는 메시지 형태로 변환하실 수 있습니다.
감사합니다.