SpringBoot

[SpringBoot] 서블릿 필터 생성 및 적용

wookjae 2021. 7. 25. 11:55

[Service Flow]

- HTTP 요청 -> WAS(톰캣) -> 필터 -> "Dispatcher" Servlet -> 인터셉터 -> 컨트롤러 

 

1. 로그필터 생성

javax.servlet.Filter 인터페이스 구현 

 

오버라이드

init(), destory()

--> 필터초기화, 종료시 호출영역 (생략가능)

doFilter()

--> 해당 필터에서 실질적으로 동작할 내역작성, 오버라이드 필수.

 

 

2. 로그인필터 생성 

 

 

3. 로그, 로그인필터 적용 및 활용   

org.springframework.boot.web.servlet.FilterRegistrationBean 빈(Bean)생성

 

setFilter()           -> 생성한 필터등록

setOrder()          -> 생성필터의 동작순서를 지정

addUrlPatterns()  -> 필터 적용될, URL 주소지정

 

 

4. 서블릿필터 적용 확인 (Session 인증체크X)

LoginCheckFilter 에서 Session 인증체크를 하지않는 '/login' 확인.

 

 

5. 서블릿필터 적용 확인 (Session 인증체크O)

LoginCheckFilter 에서 Session 인증체크 진행하는 '/items' 확인.

 

* Session 미인증사용자 접근으로, 인한 ('/login')으로 Redirect 요청 Filter 재 발동. 

httpResponse.sendRedirect("/login?redirectURL" + requestURI);