gpt4 book ai didi

spring - 在 Spring Boot 中添加多个跨源 URL

转载 作者:行者123 更新时间:2023-12-02 03:37:36 26 4
gpt4 key购买 nike

我找到了一个有关如何在 spring-boot 应用程序中设置 cors header 的示例。由于我们有很多起源,所以我需要添加它们。以下内容有效吗?

@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”。

编辑:理想的用例是注入(inject)域列表(来自 application.properties)并在 allowedOrigins 中进行设置。可以吗

  @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)
}
}

最佳答案

在 Spring boot 中,有一个注释@CrossOrigin,它将简单地在响应中添加 header 。

  1. 对于多个:
@CrossOrigin(origins = {"http://localhost:7777", "http://someserver:8080"})
@RequestMapping(value = "/abc", method = RequestMethod.GET)
@ResponseBody
public Object doSomething(){
...
}
  • 如果您想允许每个人使用,那么只需使用即可。
  • @CrossOrigin

    关于spring - 在 Spring Boot 中添加多个跨源 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39623211/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com