작성
·
192
0
SecurityConfig 클래스에서 @Bean 으로 등록한 UserDetailsService 클래스는 http.userDetailsService(userDetailsService) 이런식으로 설정하지 않는데, 그 이유를 알 수 있을까요 ??
커스텀하게 만든 UserDetailsService 즉, FormUserDetailsService 를 사용하기 위해서는 http.userDetailsService(userDetailsService) 이런식으로 설정을 해야된다고 강의에 설명되어 있었습니다.
근데, SecurityConfig 클래스에서 @Bean 으로 등록한 UserDetailsService 클래스도 걀국 우리가 직접 커스텀하게 만든것이지 않나요..?
그러면 이클래스도 http.userDetailsService(userDetailsService) 이런식으로 설정을 해야할거 같은데 안해도 정상적으로 작동하는 이유가 궁금합니다 !!
답변 1
0
UserDetailsService 를 일반 객체가 아니라 빈으로 정의하게 되면 스프링 시큐리티가 자동적으로 UserDetailsService 를 httpSecurity 속성에 설정하게 됩니다.
즉 http.userDetailsService(new UserDetailsService()) 는 수동으로 UserDetailsService 를 설정해야 하는 것이고 @Bean 으로 등록한 UserDetailsService 는 수동으로 할 필요가 없고 스프링 시큐리티에서 자동으로 설정해 주고 있습니다.
이 부분은 AuthenticationProvider 를 설명하는 강의챕터에서 확인할 수 있습니다.