首页 > 解决方案 > 在 Springboot 中重新定义现有过滤器时是否会被替换?

问题描述

在 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 不再使用了吗?

标签: springspring-boot

解决方案


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

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

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

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

推荐阅读