是否可以指定来源@CrossOrigin
通过环境变量进行注释?我想这样做,以便我可以使用相同的代码库进行 uat/staging/生产。我希望我的 uat/staging 环境可以通过 localhost 访问进行测试,但我的生产环境只接受来自一个特定端点的请求。
例如,这是我们新 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,请求被阻止。
作为后续问题。我可以将端口设置为通配符吗?那么任何本地主机网络服务器都可以访问该 API 吗?
UPDATE
所以我能够通过以下方式实现我的问题的第一部分 -https://spring.io/blog/2015/06/08/cors-support-in-spring-framework#filter-based-cors-support 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;
然而,在我的一生中,我似乎无法使任何形式的通配符/模式匹配工作。我已经尝试过以下两个作为环境变量;
http://localhost:*
http:\/\/localhost:[0-9]+
我可能必须将其作为一个单独的问题提出。