在Springboot中重新定义现有过滤器时会被替换吗?

时间:2019-05-23 07:39:54

标签: spring spring-boot

在Spring Boot中重新定义现有过滤器时,现有过滤器会被新定义的过滤器替换吗?
例如,如果我这样重新定义CorsFilter.class:

@Configuration
public class CorsConfig {

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.setAllowCredentials(true);
        corsConfiguration.addAllowedOrigin("http://localhost:8080");
        corsConfiguration.addAllowedMethod("*");
        corsConfiguration.addAllowedHeader("*");
        source.registerCorsConfiguration("/api/**", corsConfiguration);
        return new CorsFilter(source);
    }

}

不再使用org.springframework.web.filter.CorsFilter吗?

1 个答案:

答案 0 :(得分:0)

  

不再使用org.springframework.web.filter.CorsFilter吗?

我认为它仍在使用,您可以有多个过滤器。

要禁用过滤器,您可以使用FilterRegistrationBean(将要禁用的任何Filter类作为参数传递)

@Bean
  public FilterRegistrationBean filterRegistrationBean(CorsFilter corsFilter) {
    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(corsFilter);
    filterRegistrationBean.setEnabled(false);
    return filterRegistrationBean;
  }