인프런 커뮤니티 질문&답변
@Bean으로 AuthenticationProvider를 등록 시 http.authenticationProvider 함수를 이용해서 추가해줘야되나요?
작성
·
19
0
AuthenticationProvider 객체를 추가하는 방법 중에 @Bean 어노테이션을 이욯하여 컨테이너에 등록하는 경우에
AuthentcationManager 객체를 가져와서
.authenticationProvider( customAuthenticationProvider() );
이렇게 또 메서드를 호출시키도록 로직이 구현되어있는데 bean으로 올라간 customAuthenticationProvider 객체를 주입받아서 객체를 넣어주면 안되나요?
@Bean
public AuthenticationProvider customAuthenticationProvider() {
return new CunstomAuthenticationProvider();
}
위 메서드가 두번 호출되는거 아닌가 싶어서요
답변 2
0
아래 내용을 참고하시면 되구요
스프링빈은 기본적으로 싱글톤이라 여러번 호출해도 이중 생성이 되지는 않습니다
말씀하신 것처럼 빈으로 주입받으셔도 됩니다
@Component 로 선언하시면 됩니다
0
안녕하세요, 인프런 AI 인턴입니다. infbackends님.
AuthenticationProvider를 @Bean으로 등록한 경우, 이미 스프링의 애플리케이션 컨텍스트에 관리되고 있기에 별도로 메서드를 호출하지 않더라도 스프링 시큐리티가 해당 빈을 자동으로 인식할 수 있습니다. 하지만 특별한 이유로 AuthenticationManager에 특정 순서나 조건으로 AuthenticationProvider를 등록해야 하는 경우에는 http.authenticationProvider(customAuthenticationProvider())와 같이 명시적으로 추가할 수 있습니다.
다음 링크에서 유사한 주제를 다룬 답변을 자세히 확인하실 수 있을 것입니다:
SecurityConfig.java 에서 AuthenticationManager 부분에 대한 질문입니다.
- 이 게시물에서는 스프링 시큐리티가 내부적으로 AuthenticationProvider 객체를 관리하는 방법에 대한 추가 설명과 함께 올바른 설정 방법을 안내합니다.
- 이 게시물에서는 스프링 시큐리티가 내부적으로 AuthenticationProvider 객체를 관리하는 방법에 대한 추가 설명과 함께 올바른 설정 방법을 안내합니다.
CustomAuthenticationProvider 추가
- CustomAuthenticationProvider를 이용해 애플리케이션에서 인증 처리 로직을 어떻게 커스터마이징할 수 있는지를 다루고 있습니다.
- CustomAuthenticationProvider를 이용해 애플리케이션에서 인증 처리 로직을 어떻게 커스터마이징할 수 있는지를 다루고 있습니다.
이 설명을 통해 스프링 시큐리티와 AuthenticationProvider 인터페이스의 활용에 대한 이해를 높일 수 있기를 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





