티스토리 뷰

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가 나오지 않고 잘 실행되는걸 확인할 수 있습니다.

댓글
공지사항