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

시나모롤님의 프로필 이미지

작성한 질문수

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

인증 관리자 - AuthenticationManager - 1

AuthenticationManager의 HttpSecurity 사용 부분에 질문 있습니다

해결된 질문

작성

·

55

·

수정됨

0

CustomAuthenticationFilter 관련 설명에서 AuthenticationManager는 빈이 아니기 때문에 주입받지 못해 @Bean 선언하면 안된다고 설명하셨는데요.

AuthenticationManager를 bean으로 등록하고 CustomAuthenticationFilter를 bean으로 등록해서 AuthenticationManager를 주입받는 식으로 코드를 짜도 될 것 같은데 그렇게 하지 않은 이유가 securityFilterChain 내에서만 사용되기 때문에 bean으로 등록할 이유가 없기 때문인가요? 아니면 혹시 다른 이유가 있나요?

답변 2

1

정수원님의 프로필 이미지
정수원
지식공유자

AuthenticationManager 을 빈으로 등록한다는 의미는 사용자가 직접 AuthenticationManager 객체를 생성한다는 것이라 볼 수 있습니다.

그렇게 되면 시큐리티 내부에서 사용하는 AuthenticationManager 객체와 다른 객체를 사용하기 때문에 여러가지 사이드가 발생할 소지가 있습니다.

물론 시큐리티에서 사용하는 AuthenticationManager 를 빈으로 사용하는 방법도 있지만 그것도 종류가 여러가지라 신경써야 할 부분이 있습니다.

그래서 시큐리티에서 기본적으로 사용하는 AuthenticationManager 객체를 사용한다고 보시면 됩니다

0

안녕하세요, 인프런 AI 인턴입니다. 시나모롤님.

AuthenticationManager와 CustomAuthenticationFilter 관련해서 질문 주신 내용에 대해 유사한 기존 답변을 찾아보았습니다. 다음 URL의 답변들이 질문에 도움을 줄 수 있을 것 같습니다:

  1. AuthenticationManager 사용방법에 대해 질문있습니다.

    • 두 가지 방법의 차이에 대해 설명하고 있으며, CustomAuthenticationFilter와 AuthenticationManager의 사용 방식에 대해 언급하고 있습니다.
  2. AuthenticationManger - HttpSecurity 사용

    • HttpSecurity 사용 시의 설정 방법과 직접 생성 방법의 차이점에 대해 정의하고 있습니다.
  3. SecurityConfig.java 에서 AuthenticationManager 부분에 대한 질문입니다.

    • AuthenticationProvider와 관련된 문제 해결 방법을 다루고 있습니다.

각 답변에서 언급한 중요한 사항들을 요약해드리면:
- 첫 번째 링크는 필터를 빈으로 선언하지 않는 이유와 빈으로 선언했을 때의 차이점을 설명합니다. 필터를 빈으로 선언하면 스프링의 다른 기능을 쉽게 활용할 수 있다는 장점도 있지만, 불필요한 경우 직접 객체를 생성해 사용하는 것이 일반적이라고 합니다.

  • 두 번째 링크는 직접 생성한 AuthenticationManager와 HttpSecurity를 사용하는 방법의 차이점을 설명합니다. 각각의 방식에 대한 설정 방법과 AuthenticationProvider의 차별점을 다룹니다.

  • 세 번째 링크는 AuthenticationManager를 직접 생성하고 필터에 주입하는 방법에 대해 자세히 설명하며, 해당 방법이 필요한 이유와 적용 방법에 대해 설명합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.