目前,我在Spring-Boot应用程序中有以下安全配置。这是我在网上找到的允许所有CORs请求的标准配置(我也尝试过很多其他的在线配置)。
这些对于GET请求工作得很好,但是由于CORs策略,修补和删除请求仍然被阻塞。以前有没有人经历过这种情况?
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().configurationSource(request -> new CorsConfiguration().applyPermitDefaultValues());
}
}发布于 2021-06-12 22:52:54
是的,所以我用下面的配置修复了这个问题,但是有一个警告:我以前尝试过这个方法,但是我对CorsFilter的第一个导入建议不是正确的(org.apache.catalina.filters.CorsFilter)。这一次,我导入了第二个(org.springframework.web.filter.CorsFilter),现在可以工作了。
@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);
}
}
}发布于 2021-07-18 17:41:14
您可以通过创建以下bean来添加对CORS的全局支持
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*");
}
};
}https://stackoverflow.com/questions/67949807
复制相似问题