트러블슈팅
[Spring]CustomUserDetailsService에서 Service 의존성 주입
인삼추출물
2020. 10. 28. 19:19
public class CustomUserDetailsService implements UserDetailsService{
private MemberService service;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
// TODO Auto-generated method stub
log.warn("Load User By UserName : " + username);
service.checkMember(username);
return vo == null ? null : new CustomUser(map.get("resultCursor"));
}
}
결과
retrieveUser에서 error 발생.
발생원인 : Security 영역과 Serivce가 담당하는 의존성 주입 영역이 달라 CustomUserDetailsService 내부에서 Service 객체가 할당되지 않는다 합니다. (외국 질의응답 사이트에서 확인한 내용이라 카더라 일수도..)
해결방법 :
public class CustomUserDetailsService implements UserDetailsService{
@Setter(onMethod_ = {@Autowired})
private MemberMapper memberMapper;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
// TODO Auto-generated method stub
log.warn("Load User By UserName : " + username);
memberMapper.checkMember(username);
return vo == null ? null : new CustomUser(map.get("resultCursor"));
}
}
CustomUserDetailsService 내부에서 직접 mapper bean을 IoC컨테이너 안에 주입시킵니다.
그러면 이전처럼 error가 나오지 않고 잘 실행되는걸 확인할 수 있습니다.