작성
·
161
0
TokenBasedRememberMeServices
를 강의에서 설명하실 때 메모리상에 있는 user계정 정보를 조회하는 용도로 쓰인다고 설명해주셨습니다.
저 클래스를 찾아보니 아래와 같은 구현 상속관계를 갖습니다.
TokenBasedRememberMeServices
-> AbstractRememberServices
-> RememberServices
반면, 강의의 SecurityConfig.java 에서 설정을 해주실 때 작성했던 코드입니다.
@Autowired
UserDetailsService userDetailsService;
http.rememberMe()
.rememberMeParameter("remember")
.tokenValiditySeconds(3600)
.userDetailsService(userDetailsService)
;
강의 6) Remember Me 인증
07:05 에서도 user계정을 조회하는 용도로
인터페이스userDetailsService
에 빈을 주입한다고 하셨습니다.
(주입되는 구현 클래스의 정체를 모르겠습니다)
질문.
위 글에서 먼저 언급했던RememberServices
인터페이스와
userDetailsService
인터페이스는 서로 다른 인터페이스인데 두 인터페이스의 관계를 어떻게 바라봐야하는지 궁금합니다.
두 인터페이스의 구현클래스 모두 "user계정을 조회" 하는 기능으로 소개를 해주셔서 질문드립니다.
답변 1
1
네
RememberMeService 에서는 remember-me 쿠키가 존재할 때 자동인증을 하게 됩니다.
이 때 remember-me 쿠기를 parse 해서 나온 username 값을 가지고 현재 시스템에 계정이 존재하는지 질의하게 되는데 이 때 위 설정에서 정의한 userDetailsService
를 사용하게 됩니다.
그렇기 때문에 RememberMeService 에서는 userDetailsService 를 필요로 합니다.
그래서 userDetailsService 를 빈으로 생성해서 설정해 주어야 합니다.
답변 감사합니다 이해했습니다!