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

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

Linda Hamilton
发布: 2024-11-27 00:17:10
原创
269 人浏览过

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

Spring Boot 和 Spring Security 中的 CORS 配置

在支持 CORS 的同时使用 Spring Boot 和 Spring Security 时,可能会出现某些配置问题,从而导致意外结果。

使用 XMLHttpRequest 发出 GET 请求并使用 CORS 支持时会遇到这样的问题,尽管身份验证凭据不正确,但仍返回 200 状态代码。此行为会导致前端处理 HTTP 状态代码时出现差异。

解决方案

要解决此问题,在 Spring Security 中显式启用 CORS 支持至关重要。这是通过在 Spring Security 中设置 CORS 来实现的,这使其能够利用 Spring MVC CORS 配置。

对于在控制器级别使用 @CrossOrigin 注释的应用程序,只需启用 Spring Security CORS 支持就足够了。下面的代码演示了这一点:

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

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

对于选择全局 CORS 配置的用户,有必要定义一个 CorsConfigurationSource bean。

@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 Boot 和 Spring Security 中启用,解决了身份验证检查期间未添加正确的 CORS 标头的问题。有关更多详细信息,请参阅有关 CORS 的 Spring Security 官方文档。

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

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