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

mindecco님의 프로필 이미지
mindecco

작성한 질문수

스프링 시큐리티

1) 위임 필터 및 필터 빈 초기화 - DelegatingProxyChain, FilterChainProxy

커스텀 필터 등록 시, ApplicationFilterChain 에 등록

작성

·

647

·

수정됨

0

안녕하세요 강의 잘 듣고 있습니다!

 

SecurityConfig에서 커스텀 필터 등록 시 @Bean 형식으로 필터객체를 생성하여 등록하면 ApplicationFilterChain에 등록되는게 맞는걸까요?

 

Bean 만 선언한다면 ApplicationFilterChain 에 등록되고

addFilter(customFilter) 를 추가해주면 ApplicationFilterChain 리스트에도 등록되고
SecurityFilterChain 에도 등록이 됩니다.

문제는 제가 만든 커스텀 필터는, 특정 URL 에서는 동작 안하게끔 구현하고 싶은데

@Bean으로 등록했기 때문에 ApplicationFilterChain에 등록되어 어떤 요청이 들어오든 동작하는 게 문제입니다.

 

@Bean 방식이 아닌

addFilter(New CustomFilter()) 로 하면 SecurityFilterChain에만 등록되긴 하는데
CustomFilter 는 스프링 컨테이너에 등록이 안되기 때문에 다른 Resource 객체들을 주입받지 못하는 상황입니다.

결론은 ApplicationFilterChain에는 추가 안하고 SecurityFilterChain에만 커스텀 필터를 추가하고 싶은데 New 방식 말고는 없는 것인지가 궁금합니다!

답변 1

1

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

일반 필터를 빈으로 정의해서 등록하면 서블릿컨테이너에 등록이 됩니다

이건 시큐리티 필터와는 별개의 문제입니다

그래서 시큐리티에는 등록하고 서블릿컨테이너에는 인식하지 못하도록 처리가 필요합니다

https://www.inflearn.com/questions/387451/정적-파일들이-ignore-되지-않는-문제가-발생합니다

위 내용을 참고하시면 될 것 같습니다

mindecco님의 프로필 이미지
mindecco
질문자

삽질오래했는데 감사합니다! ㅠㅠ

mindecco님의 프로필 이미지
mindecco

작성한 질문수

질문하기