티스토리 뷰

문제상황

토이 프로젝트를 진행하고 있었다.

나는 스프링 시큐리티를 활용해서 인증/인가 작업을 처리했고 JWT를 활용하여 로그인을 구현하고 있기에 커스텀한 인증 필터를 하나 더 만들어서 스프링 시큐리티 필터에 추가시켰다.

 

스프링 시큐리티 같은 경우 필터기반으로 인증/인가 작업을 한다. 그래서 별다른 설정을 하지 않으면 모든 경로에 대해 필터를 지나가게하여 보안 작업을 처리한다. 이 때 이미지 또는 .css, .js, favicon 등은 필터를 거치지 않아도 접근이 가능토록 해야했기에 아래 코드를 사용하여 필터무시 설정을 해줬다.

@Bean
public WebSecurityCustomizer configure() {
      return (web ->
            web.ignoring().requestMatchers("/image/**", "/css/**", "/js/**", "/favicon"));
}

 하지만 로그를 찍어보니 저 위에 로그를 찍어보니 위의 경로에 대해 JWT 인증필터를 지나고 있는 로그가 찍힌 것을 확인하였다. 


문제해결

문제는 내가 만든 커스텀필터가 Bean 객체로 등록되어있기에 스프링시큐티리 필터체인에 포함되었을 뿐만 아니라 일반적인 필터로도 동작하고 있었기 때문이다. 즉, 스프링 필터체인에서는 무시되더라도 해당 필터를 거치게 되는 것이였다.

 

결론적으로 해당 필터의 Bean 객체의 설정을 해제(@Component 어노테이션 제거)하고 필터 인스턴스를 설정 클래스에서 직접 생성해서 스프링 시큐리티 설정에 넣어주니 문제가 해결되었다.

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함