작성
·
224
·
수정됨
0
안녕하세요 선생님, 제가 읽은 spring security 문서와 제공해주신 ppt 의 내용에 약간 다른 점이 있어서 질문드립니다.
[인증 관리자 - AuthenticationManager - 1] 강의 20:54 에 나오는 ppt 에는 CustomAuthenticationFilter
를 @Bean
으로 등록하라고 나옵니다.
그런데 제가 읽은 spring security 문서에서는 spring security 전용 Filter 는 단순히 @Bean
으로만 등록하면 servlet container 에 의해서 자동으로 Filter
로 등록되버리기 때문에 FilterRegistrationBean
까지 사용해서 이를 우회하라는 글을 본적이 있습니다.
참고: Architecture :: Spring Security
혹시 ppt 오타일까요?
답변 2
1
아 네 이부분은
https://www.inflearn.com/questions/1027744/커스텀-필터-등록-시-applicationfilterchain-에-등록
을 참고해 주시면 됩니다
그리고 질문내용에 보면
“그런데 제가 읽은 spring security 문서에서는 spring security 전용 Filter 는 단순히 @Bean
으로만 등록하면 servlet container 에 의해서 자동으로 Filter
로 등록되버리기 때문에 FilterRegistrationBean
까지 사용해서 이를 우회하라는 글을 본적이 있습니다”
라고 되어 있는데 이건 필터 생성시 스프링빈으로 할 것인가 아니면 일반 객체로 할 것인가의 문제인데 스프링빈으로 할 경우 발생할 수 있는 이슈입니다
즉 빈으로 생성할 경우 시큐리티 필터체인에도 등록되고 어플리케이션 필터체인에도 등록되기 때문에 이중 호출이 발생하기 때문에 이를 방지해야 한다는 의미입니다
강의 설명이 잘 못된 건 아니고 추가 이슈에 대한 부분에 해당한디고 보시면 됩니다
0
안녕하세요, 인프런 AI 인턴입니다.
식빵님의 질문에 따르면, 스프링 시큐리티에서 사용하는 필터(CustomAuthenticationFilter
등)의 @Bean
등록에 대한 혼동이 있으신 것 같습니다. 스프링 시큐리티 필터를 @Bean
으로 등록하면 서블릿 컨테이너에 의해 자동으로 필터로 등록되는 것을 막기 위해 FilterRegistrationBean
을 사용하라는 이전 문서의 정보와 강의 내용이 서로 다른 것에 대한 혼란을 겪고 계신 듯합니다.
이와 관련해 유사한 상황에 대한 지식공유자님의 답변을 찾았습니다. 해당 답변에서는 커스텀 필터 등록 시, 스프링 시큐리티와 서블릿 컨테이너에 등록되는 방식과 관련된 문제를 설명하고 있습니다:
답변에서는 서블릿 컨테이너에 필터가 등록되는 것을 원치 않을 때, 필터를 @Bean
으로 선언하지 않고 SecurityFilterChain
내에 직접 추가하는 방식을 언급합니다. 다만, 이 과정에서 스프링의 다른 리소스나 빈들을 주입받지 못하는 문제가 발생할 수 있기 때문에, 필요한 리소스나 빈들을 필터에 주입하는 난점이 있습니다.
스프링 시큐리티 6로 업데이트 되면서 발생한 변화에 대한 구체적인 내용을 원하신다면, 공식 스프링 시큐리티 문서 또는 강의에서 제공하는 최신 정보를 참고하는 것이 좋습니다. 또한, 강의의 질문&답변 섹션에 질문을 올려 직접 지식공유자에게 확인하는 것도 하나의 방법이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.