• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

GrantedAuthority의 역할 + 추가 질문

23.02.14 18:47 작성 23.02.14 18:53 수정 조회수 650

0

GrantedAuthority를 AccountContext 생성자 매개변수로 넘기게 되는데 이 클래스의 역할이 정확이 무엇인가요? 그냥 권한정보를 넘기기 위한 규격(?) 같은거라고 생각해도 될까요?

+

SecurityFilterChain으로 실습 진행중입니다.

궁금한점은 영상에서는 CustomUserDetailsService를 명시적으로 등록해주던데

최신버전에선 이렇게만 구현하면

@Bean
AuthenticationManager authenticationManager(AuthenticationConfiguration authConfiguration) throws Exception {
    return authConfiguration.getAuthenticationManager();
}

어떤 방식으로 CustomUserDetailsService가 자동으로 등록되는 건가요?

스프링시큐리티가 UserDetailsService를 구현한 클래스를 자동으로 찾아서 등록해주는 걸까요?

답변 1

답변을 작성해보세요.

0

  1. GrantedAuthority 는 사용자의 권한을 의미하기 때문에 AccountContext 의 부모격인 User 클래스에 GrantedAuthority 값을 전달해 주어야 합니다. 그리고 AccountContext 는 UserDetails 타입의 클래스로 정의가 되어야 하므로 생성할 때 생성자로 전달하고 있습니다.

     

  2. AuthenticationManager 는 필터로부터 인증 처리를 위임받는 클래스로서 내부적으로 AuthenticationProvider 를 가지고 있고 AuthenticationProvider 는 UserDetailsService 를 사용해서 사용자의 정보를 참조하는 식으로 관계를 맺고 있습니다. 이 때 직접 CustomDetailsService 를 등록하게 되면 시큐리티가 사용자가 등록한 CustomDetailsSerivce 를 우선적으로 사용해서 인증처리를 하도록 되어 있습니다.

조우현님의 프로필

조우현

질문자

2023.02.15

감사합니다