작성
·
970
·
수정됨
0
GrantedAuthority를 AccountContext 생성자 매개변수로 넘기게 되는데 이 클래스의 역할이 정확이 무엇인가요? 그냥 권한정보를 넘기기 위한 규격(?) 같은거라고 생각해도 될까요?
+
SecurityFilterChain으로 실습 진행중입니다.
궁금한점은 영상에서는 CustomUserDetailsService를 명시적으로 등록해주던데
최신버전에선 이렇게만 구현하면
@Bean
AuthenticationManager authenticationManager(AuthenticationConfiguration authConfiguration) throws Exception {
return authConfiguration.getAuthenticationManager();
}
어떤 방식으로 CustomUserDetailsService가 자동으로 등록되는 건가요?
스프링시큐리티가 UserDetailsService를 구현한 클래스를 자동으로 찾아서 등록해주는 걸까요?
답변 1
0
GrantedAuthority 는 사용자의 권한을 의미하기 때문에 AccountContext 의 부모격인 User 클래스에 GrantedAuthority 값을 전달해 주어야 합니다. 그리고 AccountContext 는 UserDetails 타입의 클래스로 정의가 되어야 하므로 생성할 때 생성자로 전달하고 있습니다.
AuthenticationManager 는 필터로부터 인증 처리를 위임받는 클래스로서 내부적으로 AuthenticationProvider 를 가지고 있고 AuthenticationProvider 는 UserDetailsService 를 사용해서 사용자의 정보를 참조하는 식으로 관계를 맺고 있습니다. 이 때 직접 CustomDetailsService 를 등록하게 되면 시큐리티가 사용자가 등록한 CustomDetailsSerivce 를 우선적으로 사용해서 인증처리를 하도록 되어 있습니다.
감사합니다