我找到了一个关于如何在 spring-boot 应用程序中设置 cors 标头的示例。由于我们有很多来源,我需要添加它们。以下内容有效吗?
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://domain1.com")
.allowedOrigins("http://domain2.com")
.allowedOrigins("http://domain3.com")
}
}
除非它被三个域使用,否则我无法对此进行测试。但我想确保我设置了三个来源,并且不仅设置了“domain3.com”。
编辑:理想的用例是注入域列表(来自application.properties)并将其设置在allowedOrigins中。可能吗
IE
@Value("${domainsList: not configured}")
private List<String> domains;
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins(domains)
}
}
原文由 brain storm 发布,翻译遵循 CC BY-SA 4.0 许可协议
您设置的方式只会设置第三个原点,其他两个将消失。
如果要设置所有三个来源,则需要将它们作为逗号分隔的字符串传递。
你可以在这里找到实际的代码: