Spring Boot创建FilterRegistrationBean时遇CorsFilter构造器未定义错误
问题排查与解决
错误原因
你导入了WebFlux响应式版本的UrlBasedCorsConfigurationSource,但当前项目是基于Servlet的Spring MVC环境(从代码里的WebSecurityConfigurerAdapter、@EnableWebMvc可判断)。CorsFilter(Servlet版)只接受Servlet环境下的UrlBasedCorsConfigurationSource实例,两者类型不匹配,因此报构造函数未定义的错误。
解决步骤
修正导入包
将导入语句中的:import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;替换为:
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;验证代码
修改后,new CorsFilter(source)的参数类型会与构造函数要求的CorsConfigurationSource完全匹配,报错即可消除。
补充说明
只有WebFlux项目才需要使用reactive包下的CORS相关类,但当前代码依赖的是Spring Security Servlet版本的组件(WebSecurityConfigurerAdapter),因此确定是导入错误导致的类型不兼容问题。
内容的提问来源于stack exchange,提问作者Arpit Awasthi
相关产品推荐
相关产品推荐

