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

씽쌩쏭님의 프로필 이미지

작성한 질문수

스프링 시큐리티 완전 정복 [6.x 개정판]

커스텀 UserDetailService 구현하기

섹션 13의 5번째 강의(CustomUserDetails 구현하기) 질문입니다. !!

작성

·

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 를 설명하는 강의챕터에서 확인할 수 있습니다.