【问题标题】:Spring boot CORS config with ConfigurationProperties带有 ConfigurationProperties 的 Spring Boot CORS 配置
【发布时间】:2020-11-10 14:15:07
【问题描述】:

我有一个运行良好的全局 CORS 配置:

@Component
public class CorsConfiguration implements WebMvcConfigurer {
    String allowedOrigins = "*";

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins(allowedOrigins)
    }

    public String getAllowedOrigins() {
        return allowedOrigins;
    }

    public void setAllowedOrigins(String allowedOrigins) {
        this.allowedOrigins = allowedOrigins;
    }
}

现在我想通过application.yaml 使每个应用程序的allowsOrigins字段动态化。我试图将@ConfigurationPropierties(prefix="cors") 添加到CorsConfiguration 类。并将cors.allowedOrigins=test 添加到application.yaml。但这无济于事。我已经阅读了很多帖子和教程,但我不明白为什么这不起作用。应该就这么简单。我错过了什么?

EDIT我也试过@Value这样的注解

@Value("${cors.allowedOrigins:*}")
String allowedOrigins;

Application.yaml

cors:
  allowedOrigins=http://localhost:4200

结果是我只得到了默认值*,没有从application.yaml读取任何内容。

谢谢

【问题讨论】:

    标签: spring-boot configurationproperties


    【解决方案1】:

    尝试使用@Value 注释从application.yml 获取您的属性值,如下所示:

    application.yml

    origin:
      allowedOrigins: [HOST_HERE]
    

    然后在你的 CorsConfiguration 类中使用它:

    @Component
    public class CorsConfiguration implements WebMvcConfigurer {
    
      @Value("${origin.allowedOrigins:DEFAULT_VALUE_HERE}")
      private String allowedOrigins;
    
      @Override
      public void addCorsMappings(CorsRegistry registry) {
          registry.addMapping("/**")
                .allowedOrigins(allowedOrigins)
      }
      // code here
    }
    

    【讨论】:

    • 同样的问题。使用默认值,但不是来自 application.yaml 的值
    • 你可以通过展示你所做的来更新你的帖子吗?
    【解决方案2】:

    我认为您应该在 CorsConfiguration 上添加以下注释:

    @EnableWebMvc
    @Configuration
    @ComponentScan(basePackages = { "<packge name>" })
    

    最后一个不是必需的,但有时你需要它

    【讨论】:

      猜你喜欢
      • 2018-07-27
      • 2021-06-14
      • 2019-08-01
      • 1970-01-01
      • 2015-06-04
      • 2018-06-21
      • 2015-06-17
      • 2018-02-07
      • 2016-07-24
      相关资源
      最近更新 更多