首页 > web前端 > js教程 > 如何使用 Spring Boot 和 Spring Security 正确配置 CORS?

如何使用 Spring Boot 和 Spring Security 正确配置 CORS?

DDD
发布: 2024-11-28 17:04:10
原创
695 人浏览过

How to Properly Configure CORS with Spring Boot and Spring Security?

使用 Spring Boot Spring Security 处理 CORS

将 Spring Boot 与 Spring Security 和 CORS 支持结合使用时,可能会出现意外行为。默认情况下,CORS 预检请求可能会在到达 Spring MVC 之前被 Spring Security 阻止。

配置选项:

要解决此问题,请在 Spring Security 中显式启用 CORS 支持:将以下代码添加到 HttpSecurity 配置中:

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().and()...
    }
}
登录后复制

全局 CORS配置:

或者,您可以通过声明 CorsConfigurationSource bean 来定义全局 CORS 配置:

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().and()...
    }

    @Bean
    CorsConfigurationSource corsConfigurationSource() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", new CorsConfiguration().applyPermitDefaultValues());
        return source;
    }
}
登录后复制

解决 CORS 问题

这种方法取代了之前推荐的基于过滤器的方法。有关更多信息,请参阅 Spring Security 文档的 CORS 部分。

已知问题和解决方法

如果这些配置不能解决问题,请考虑以下解决方法:

[Github问题5834](https://github.com/spring-projects/spring-boot/issues/5834) 提供了一个潜在的解决方案。

以上是如何使用 Spring Boot 和 Spring Security 正确配置 CORS?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板