• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

userEntity 가 null로 반환될때 UsernameNotFoundException 질문하겟습니다.

21.06.02 11:40 작성 조회수 375

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를 커스터마이징 해서 사용하시면 원하시는 메시지 형태로 변환하실 수 있습니다. 

감사합니다.