본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Spring framework/Spring boot

Spring boot 웹 필터 적용

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2019. 4. 30.

 

 

웹 필터를 적용하는 방법이야 사실 검색하면 여러 방법이 나온다.

웹 필터를 사용하는 목적은 서블렛에게 요청이 전달하기 전에 무언가 행동을 하기 위해서이다.

가령, 웹 필터를 활용하면 요청이 도착하기전에 Parameter에 불필요한 내용이 있는지 검사를 하거나, 크로스 도메인 문제를 해결하기 위한 세팅을 하거나, 약속된 규칙이 맞는지 검사를 하기위해 사용된다 할 수 있다.

 

그런데, 이러한 웹 필터를 모든 요청에 걸어주게되면, 웹 필터가 jpg, png, js 등 굳이 검사를 해도 되지 않는 대상까지 필터를 하게 되어 속도가 느려지거나 402, 400 등의 오류를 만나기도 한다.

 

Spring boot에서 웹필터를 사용하는 방법중에 @WebFilter 에노테이션을 활용하면 편리하다.

먼저 메인메소드가 존재하는 클래스를 수정한다.

@SpringBootApplication
@ServletComponentScan  //스캔설정
public class SpringBootApplication extends SpringBootServletInitializer {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootApplication.class, args);
	}

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(SpringBootApplication.class);
	}
}

 

다음에 웹 필터를 상속받는 클래스를 만든다.

@WebFilter(urlPatterns = { "/요청1","/요청2".. })
public class AllowFillterChecker implements Filter {

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {

	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        //들어온 요청에 대한 행동
        chain.doFilter(request, response);
    }

	@Override
	public void destroy() {

	}
}

 

웹필터 에노테이션에 urlPatterns 내부에 배열형태로 원하는 요청값을 넣어주면 된다.

저렇게 하면 내가 원하는 요청에 대해서만 필터클래스를 동작시킬 수 있어서 불필요한 필터링은 하지 않게 되는 것 이다.

 

 

 

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글