Spring Boot Filter

Filter

In Spring boot, we can use Java Servlet filter.
The way to implement filter is same.
Implement Filter interface

Use JavaServlet Filter

To use this, we need to register Filter using Configuration.
Please prepare configuration class

Filter class

public class SampleFilter 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() {
		
   }
}

Configuration

@Configuration
public class FilterConfig {
  @Bean
  public FilterRegistrationBean  firstFilter() {
     FilterRegistrationBean registrationBean = new FilterRegistrationBean();
     SampleFilter sampleFilter = new SampleFilter();
     registrationBean.setFilter(sampleFilter);
     registrationBean.setOrder(1);
     List<String> urlPatterns = new ArrayList<String>();
     urlPatterns.add("/*");
     registrationBean.setUrlPatterns(urlPatterns);
     return registrationBean;
  }
}

Multiple Filter and Order Example

Add 2 in the same configuration and setOrder

@Configuration
public class FilterConfig {
  @Bean
  public FilterRegistrationBean  firstFilter() {
     FilterRegistrationBean registrationBean = new FilterRegistrationBean();
     SampleFilter sampleFilter = new SampleFilter();
     registrationBean.setFilter(sampleFilter);
     registrationBean.setOrder(1);
     List<String> urlPatterns = new ArrayList<String>();
     urlPatterns.add("/*");
     registrationBean.setUrlPatterns(urlPatterns);
     return registrationBean;
  }

  @Bean
  public FilterRegistrationBean  secondFilter() {
     FilterRegistrationBean registrationBean = new FilterRegistrationBean();
     SampleFilter2 sampleFilter = new SampleFilter2();
     registrationBean.setFilter(sampleFilter);
     registrationBean.setOrder(2);
     List<String> urlPatterns = new ArrayList<String>();
     urlPatterns.add("/*");
     registrationBean.setUrlPatterns(urlPatterns);
     return registrationBean;
  }
}