인프런 커뮤니티 질문&답변

잔진호님의 프로필 이미지
잔진호

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Users Microservice - 로그인 성공 처리

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

작성

·

446

0

항상 강의 잘 듣고있습니다. 강사님!

강의도중 

if(userEntity==null){
throw new UsernameNotFoundException("userName is Not");
}

잘못된 정보로 로그인을 요청했을때 UsernameNotFoundException을 throw 하는데

이상하게 디버그 모드로도 Null 값이 반환되는데

status 코드는 401번에 message가 정상적으로 출력되지 않아서

질문드립니다!

답변 1

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

UserService의 loadUserByUsername 메소드에서 사용자 정보를 찾지 못했을 때 발생하는 UsernameNotFoundException은 AbstractUserDetailsAuthenticationProvider.class에서 처리되는데,  아래 디버깅 이미지(AbstractUserDetailsAuthenticationProvider 코드입니다)에서 보시는 것 처럼, 정의한 UsernameNotFoundException이 아니라, BadCrednticalsException으로 변경되어 반환되는 것을 볼 수 있습니다. AbstractUserDetailsAuthenticationProvider를 구현한 DaoAuthenticationProvider를 커스터마이징 해서 사용하시면 원하시는 메시지 형태로 변환하실 수 있습니다. 

감사합니다. 

잔진호님의 프로필 이미지
잔진호

작성한 질문수

질문하기