【发布时间】:2020-01-09 00:39:23
【问题描述】:
我已经阅读了很多关于春季(启动)中 CORS 的帖子,但没有人能回答我的问题,但也许我只是错过了答案,所以请耐心等待。
我有一个目前仅用于服务器到服务器调用的 REST Web 服务。我现在想打开一些端点直接从浏览器调用,而不是从同一个域调用,因此是 CORS。我通过做两件事使它适用于某些端点:
1.在我的WebSecurityConfigurerAdapter中启用OPTIONS:
http.authorizeRequests()
.mvcMatchers(HttpMethod.OPTIONS,
"/endpont1",
"/endpoint2")
.permitAll()
2。为这些端点将以下注释添加到我的@GetMapping:
@CrossOrigin(origins = "${cors.origin}", allowCredentials = "true",
exposedHeaders = ResponseUtils.CONTENT_DISPOSITION)
@GetMapping("/endpoint1")
问题是,据我了解文档,将 origins 留空允许 CORS 用于任何域。如果我不需要 CORS,我不想允许 OPTIONS。
通过属性文件进行配置的最佳方法是什么?
“嵌入式”application.properties 应该禁用它,但如果租户想要启用它,我们可以提供额外的 application-tenant.properties,我们可以在其中为某些域启用它并使用适当的配置文件启动应用程序。
编辑:我在另一篇看起来很有趣的帖子中找到了一个答案,也许我可以有条件地做到这一点: https://stackoverflow.com/a/43559288/3737177
【问题讨论】:
标签: spring-boot cors