작성
·
45
0
안녕하십니까 선생님,
양질의 강의 항상 감사드립니다.
AuthenticationManager와 AuthenticationProvider의 구성에 대해서 개념적으로 확인하고 싶은 것이 있어 질문 드립니다.
AuthenticationProvider를 직접 구성하여 등록하지 않으면 기본적으로 DaoAuthenticationProvider, BasicAuthenticationProvider, RememberMeAuthenticationProvider 가 등록이 되는데, 직접 커스텀한 Provider를 등록 시 이 3개의 기본 Provider들은 자동 구성에서 제외 되는 것 인가요?
만약 AuthenticationManger를 builder 혹은 직접생성(new)을 통해 생성한다면 기본 제공 되는 Provider들은 자동 구성에서 제외되는 것 인가요? 만약 그렇다면 AuthenticationManager는 직접 등록하고 싶은 Provider가 있을 때에만 생성하는 것 인가요?
답변 2
0
기본적으로 생성되는 provider 이 daoprivider 와 basicprovider 이고 remembermeprovider 는 rememberme 설정이 있을때에만 생성됩니다 이때 커스텀한 provider 를 등록하면 dao 와 basic 는 제외됩니다 강의에 자세히 설명하고 있습니다
네 결론은 그렇습니다. Providermanager 생성은 별도의 인증을 분리해서 사용하고자 할 때 활용할 수 있습니다 기존의 manager는 그대로 존재합니다 그래서 시큐리티에서 제공하는 form 인증은 기본적으로 제공하는 manager 를 사용하고 별도의 rest 방식의 인증은 새로운 manager 에서 사용하도록 구성할 수 있습니다 두 manager 는 서로 간섭하지 않고 각 인증방식에 맞게 동작하게끔 할 때 사용하시면 됩니다
0
안녕하세요, 인프런 AI 인턴입니다. jjs270402님.
AuthenticationManager와 AuthenticationProvider에 대한 질문을 주셨군요. 스프링 시큐리티에서의 AuthenticationManager와 관련된 사항은 다소 헷갈릴 수 있는 부분이지만, 중요한 개념입니다. 이에 대한 설명과 함께 관련된 답변 링크를 제공해 드리겠습니다.
기본 Provider 구성 여부
스프링 시큐리티는 AuthenticationProvider를 등록하지 않는 경우 기본적으로 몇 가지 Provider를 자동으로 등록하여 사용합니다. 하지만 직접 커스텀한 Provider를 명시적으로 추가할 경우, 기본 Provider가 자동으로 제외되지는 않고 함께 등록됩니다. 스프링 시큐리티의 기본 동작은 순서에 따라 Provider를 차례로 시도하여 인증을 처리하므로, 커스텀한 Provider를 사용하고 싶다면 이를 명시적으로 등록하고, 우선 순위를 통해 처리 순서를 조절해야 합니다. 여기에서 관련된 논의가 이루어졌습니다.
AuthenticationManager 구성 방법
AuthenticationManager를 직접 생성하거나, builder를 통해 구성하는 경우 선택적으로 AuthenticationProvider를 설정할 수 있습니다. 기본적으로 제공되는 Provider는 직접 명시하지 않으면 포함되지 않습니다. 따라서 인증 처리의 커스터마이징이 필요할 경우 AuthenticationManager를 직접 등록하고 필요한 Provider만 추가하는 방법을 사용할 수 있습니다. 관련된 자세한 설명은 이 질문에서 확인하실 수 있습니다.
이러한 Issue 들은 스프링 시큐리티의 내부 동작 원리에 관련되어 있어 자세한 이해가 요구됩니다. 도움이 필요하시다면 해당 강의의 강사님께 추가적인 질문을 하셔도 좋습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.