springmvc的filter需要在web.xml中放在比较靠前的位置,请求按顺序进入filter,其他filter直接过滤掉了的话就不生效了。
spring boot可以配置一个@Bean,org.springframework.boot.web.servlet.FilterRegistrationBean,org.springframework.web.filter.CorsFilter,构造函数使用一个org.springframework.web.cors.CorsConfiguration;
@Bean
public FilterRegistrationBean corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
config.setMaxAge(3600L);
source.registerCorsConfiguration("/**", config);
FilterRegistrationBean filterBean = new FilterRegistrationBean<>(new CorsFilter(source));
filterBean.setOrder(0);
return filterBean;
}
网友评论