• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

23.09.26 09:52 작성 23.09.26 10:47 수정 조회수 372

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

질문자

2023.09.26

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