Filter & FilterChain

seongmin·2022년 11월 20일
0

Security

목록 보기
3/10
post-thumbnail

Filter

  • 서블릿 필터(Servlet Filter)는 서블릿 기반 애플리케이션의 엔드포인트에 요청이 도달하기 전에 중간에서 요청을 가로챈 후 어떤 처리를 할 수 있도록 해주는 Java의 컴포넌트

클라이언트가 서버 측 애플리케이션으로 요청을 전송하면 제일 먼저 Servlet Filter를 거치게 된다.

그리고 Filter에서의 처리가 모두 완료되면
DispatcherServlet에서 클라이언트의 요청을 핸들러에 매핑하기 위한 다음 작업을 진행한다.

Filter와 Filter Chain의 특성

  • Servlet FilterChain은 요청 URI path를 기반으로 HttpServletRequest를 처리한다. 따라서 클라이언트가 서버 측 애플리케이션에 요청을 전송하면 서블릿 컨테이너는 요청 URI의 경로를 기반으로 어떤 Filter와 어떤 Servlet을 매핑할지 결정한다.

  • Filter는 Filter Chain 안에서 순서를 지정할 수 있으며 지정한 순서에 따라서 동작하게 할 수 있다.

  • Filter Chain에서 Filter의 순서는 매우 중요하며 Spring Boot에서 여러 개의 Filter를 등록하고 순서를 지정하기 위해서는 다음과 같은 두 가지 방법을 적용할 수 있다.

    • Spring Bean으로 등록되는 Filter에 @Order 애너테이션을 추가하거나 Ordered 인터페이스를 구현해서 Filter의 순서를 지정할 수 있다.

    • FilterRegistrationBean 을 이용해 Filter의 순서를 명시적으로 지정할 수 있다.

0개의 댓글