Spring Boot

[Spring Boot] Servlet Filter 란?

dev-sunflower 2025. 2. 6. 16:13

이미지 출처: https://docs.oracle.com

 

보안, 로깅, 인코딩, 인증/인가 등 다양한 작업을 처리하기 위해 사용된다. 한마디로 클라이언트(Client)로 부터 서버(Server)로 요청이 들어오기 전에 서블릿(Servlet)을 거쳐서 필터링(Filtering) 하는 것을 말한다.

특징

Servlet Filer의 특징으로는

  1. 공통 관심사 로직 처리로 재사용성이 높고 유지보수가 쉬우며, 요청을 처리하는데 있어 일관성을 유지한다.
  2. HTTP 요청 및 응답 필터링이 가능하다.
  3. Filter Chain을 통해 여러 개의 필터를 순차적으로 적용할 수있다.

Servlet Filter 구현

Filter 를 implements 하고, doFilter를 오버라이드 하여 구현체를 만든다.

doFilter 오버라이드

 

마지막에 filterChain.doFilter를 통해 다음 filter가 존재하지 않으면 서블렛(Servlet)을 호출한다. 

 

loginFilter 를 Bean으로 등록

 

만들어진 doFilter를 빈(Bean)으로 등록한다.

 

FilterRegistrationBean<> 정리

setFilter()

 등록할 필터를 파라미터로 전달하여 필터를 등록한다.

 

setOrder()

 필터는 체인 형식으로 동작하는 이를 실행 할때 순서가 필요하다. setOrder(순서)를 사용하여 우선 순위를 정할 수 있다.

 

addUrlPatterns()

필터를 적용할 URL 패턴을 지정한다. 여러개를 지정할 수있고 규측은 Servlet URL Pattrtn과 같다. 현재 코드에서는 모든 Request를 허용한다.