首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot应用程序阻止的跨域补丁和DELETE请求,但未阻止GET请求

问Spring Boot应用程序阻止的跨域补丁和DELETE请求,但未阻止GET请求
EN

Stack Overflow用户
提问于 2021-06-12 22:31:57
回答 2查看 609关注 0票数 0

目前,我在Spring-Boot应用程序中有以下安全配置。这是我在网上找到的允许所有CORs请求的标准配置(我也尝试过很多其他的在线配置)。

这些对于GET请求工作得很好,但是由于CORs策略,修补和删除请求仍然被阻塞。以前有没有人经历过这种情况?

代码语言:javascript
复制
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().configurationSource(request -> new CorsConfiguration().applyPermitDefaultValues());
    }
}
EN

回答 2

Stack Overflow用户

发布于 2021-06-12 22:52:54

是的,所以我用下面的配置修复了这个问题,但是有一个警告:我以前尝试过这个方法,但是我对CorsFilter的第一个导入建议不是正确的(org.apache.catalina.filters.CorsFilter)。这一次,我导入了第二个(org.springframework.web.filter.CorsFilter),现在可以工作了。

代码语言:javascript
复制
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().and().csrf().disable();
    }
    
    @Configuration
    public class CorsConfig {

        @Bean
        public CorsFilter corsFilter() {
            UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
            CorsConfiguration config = new CorsConfiguration();
            config.setAllowCredentials(true);
            config.addAllowedOrigin("http://localhost:3000");
            config.addAllowedHeader("*");         
            config.addAllowedMethod("POST");
            config.addAllowedMethod("GET");
            config.addAllowedMethod("PATCH");
            source.registerCorsConfiguration("/**", config);
            return new CorsFilter(source);
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2021-07-18 17:41:14

您可以通过创建以下bean来添加对CORS的全局支持

代码语言:javascript
复制
@Bean
public WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurer() {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**").allowedOrigins("*");
        }
    };
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67949807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档