【发布时间】:2021-06-26 07:02:33
【问题描述】:
我想使用 Spring Security 从 Spring Boot (2.3.3.RELEASE) 中完全删除 CORS。
HttpSecurity 对象有 WebSecurityConfigurerAdapter#configure 方法,我可以在其中调用 cors().disable(),但它似乎不起作用。
class MySecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().disable();
}
}
使用上面的 sn-p,我在从前端应用程序访问端点时仍然会遇到 CORS 错误。
我必须从WebMvcConfigurer 接口覆盖addCorsMappings,如下所示????。
这是为什么呢?为什么打http.cors().disable()不够?
class MySecurityConfiguration extends WebSecurityConfigurerAdapter implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedMethods("*")
.allowedOrigins("*");
}
【问题讨论】:
-
您无法在没有配置的情况下启用 CORS。
http.cors().disable()表示服务器不支持跨域资源共享。 -
@dur 不支持是什么意思?那么它是否应该停止验证与 CORS 相关的标头?谢谢解释????
-
我编辑了我的评论,这令人困惑。你的问题只是措辞问题。默认情况下不允许 CORS,这意味着不允许共享。您必须通过配置启用 CORS。
-
我明白了,谢谢@dur ????
标签: java spring spring-boot spring-security cors