是否可以通过环境变量指定@CrossOrigin
注释的开始点?我想这样做,以便我可以使用相同的代码库进行uat/staging/production。我希望我的uat/staging环境可以通过localhost进行测试,但我的生产环境只接受来自特定端点的请求。通过环境变量指定@CrossOrigin开始点
例如,这是我们用于新API的跨源注释用户;
@CrossOrigin(origins = {"http://localhost:9000", "http://example.com"})
这工作正常。在我的本地机器上进行测试,只有在端口9000上运行的网络服务器才能访问我的API。然后,我尝试设置我的本地Windows计算机
ALLOWED_ORIGINS = http://localhost:9000,http://example.com
在我的环境变量,然后,我改变了注解太
@CrossOrigin(origins = "#{'${allowed.origins}'.split(',')}")
而现在的请求被阻塞,由于CORS。
作为后续问题。我可以将端口设置为通配符吗?这样任何本地主机web服务器都可以访问API?
UPDATE
所以我能够实现我的问题通过的第一部分 - https://spring.io/blog/2015/06/08/cors-support-in-spring-framework#filter-based-cors-support
和我的生活设置环境变量为allowedOrigins()
@Value("#{'${allowed.origins}'.split(',')}")
private List<String> allowedOrigins;
然而我似乎无法获得任何形式的通配符/模式匹配工作。我已经尝试了以下两个环境变量:我可能不得不提出这是一个单独的问题
我不会使用基于xml的配置。我还需要模式匹配来允许所有本地主机端口,所以看起来像我必须使用CORS过滤器,如果我正确理解事情。 – Jags
您是否使用基于Java的配置? – Paras
是的,我。 - https://spring.io/blog/2015/06/08/cors-support-in-spring-framework#filter-based-cors-support是我如何运作的。 – Jags