You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot Security下CORS问题:如何完全禁用CORS?

如何在Spring Boot + Spring Security中完全禁用CORS支持

嘿,我来帮你搞定完全禁用CORS的问题!你提到用自定义OncePerRequestFilter的思路是对的,但要注意Spring Security的过滤器链优先级更高,得搭配Security配置一起调整才能彻底生效。

第一步:自定义CORS禁用过滤器

这个过滤器会在每个请求进来时清除所有CORS相关响应头,跳过任何CORS预处理逻辑:

@Component
public class DisableCorsFilter extends OncePerRequestFilter {

    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
            throws ServletException, IOException {
        // 清除所有CORS相关的响应头
        response.setHeader("Access-Control-Allow-Origin", null);
        response.setHeader("Access-Control-Allow-Methods", null);
        response.setHeader("Access-Control-Allow-Headers", null);
        response.setHeader("Access-Control-Allow-Credentials", null);
        response.setHeader("Access-Control-Max-Age", null);
        
        // 直接传递请求,不做任何CORS相关处理
        filterChain.doFilter(request, response);
    }
}

第二步:在Spring Security配置中禁用CORS

因为Spring Security本身会自带CORS处理逻辑,所以必须在Security配置里明确禁用它,否则你的自定义过滤器可能被Security的CORS处理覆盖:

@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            // 禁用Spring Security内置的CORS处理
            .cors(cors -> cors.disable())
            // 这里加上你的其他Security配置,比如授权规则、CSRF设置等
            .authorizeHttpRequests(auth -> auth
                .anyRequest().authenticated()
            )
            // 其他配置(比如表单登录、JWT认证等)
            // .formLogin(form -> form.loginPage("/login"))
            // ...
        
        return http.build();
    }
}

额外注意事项

  • 确保你的自定义过滤器被Spring容器扫描到(比如放在@SpringBootApplication注解所在包的子包下,或者手动通过@Bean注册)
  • 如果之前项目里用过@CrossOrigin注解,记得把这些注解全部移除,避免和禁用逻辑冲突
  • 测试时可以打开浏览器开发者工具的Network标签,检查响应头里是否还有CORS相关字段,确保已经被完全清除

内容的提问来源于stack exchange,提问作者Sergey Vladimirovich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:14:38