FrameWork
Spring Boot 에서 Servlet 과 필터 사용하기
클라인STR
2019. 4. 18. 14:59
스프링 부트에서는 web.xml을 사용하지 않는다.
스프링 부트에서 필터를 사용할 경우
org.springframework.boot.web.servlet.FilterRegistrationBean 등록해서 사용한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { ... @Bean public FilterRegistrationBean oauth2ClientFilterRegistration(OAuth2ClientContextFilter filter) { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(filter); registration.setOrder(-100); return registration; } } | cs |
자바 설정파일인 SecurityConfig 에서 FilterRegistrationBean을 등록하였다.
또 다른 방법으로는 @ServletComponentScan , @WebFilter 어노테이션을 사용하여 필터를 등록하는 방법이 있다.
1 2 3 4 5 6 7 | @ServletComponentScan @SpringBootApplication public class BootWebApplication extends WebMvcConfigurerAdapter { . . . } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | @WebFilter(urlPatterns = "/test") public class FilterTest implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { } } | cs |