작성
·
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-되지-않는-문제가-발생합니다
위 내용을 참고하시면 될 것 같습니다
삽질오래했는데 감사합니다! ㅠㅠ