How to define Servlet filter order of execution in Spring Boot application

前端 未结 3 1072
臣服心动
臣服心动 2020-12-07 20:46

I am trying to set the order of execution of 2 filters in my spring boot application which have same url mapping. I have tried using 2 filter registration beans in my main A

3条回答
  •  广开言路
    2020-12-07 21:10

    setOrder(int) method does the job.

    below is an example

    @Configuration
    @EnableAutoConfiguration
    @EnableWebMvc
    @ComponentScan
    public class Application {
    
        @Bean
        public FilterRegistrationBean filterRegistrationBean() {
            FilterRegistrationBean registrationBean = new FilterRegistrationBean();
            SecurityFilter securityFilter = new SecurityFilter();
            registrationBean.setFilter(securityFilter);
            registrationBean.setOrder(2);
            return registrationBean;
        }
    
        @Bean
        public FilterRegistrationBean contextFilterRegistrationBean() {
            FilterRegistrationBean registrationBean = new FilterRegistrationBean();
            RequestContextFilter contextFilter = new RequestContextFilter();
            registrationBean.setFilter(contextFilter);
            registrationBean.setOrder(1);
            return registrationBean;
        }
    }
    

提交回复
热议问题