如何在 Spring Framework 4.2/Boot 1.3 中根据 Origin HTTP 请求标头设置动态 Access-Control-Allow-Origin?
Posted
技术标签:
【中文标题】如何在 Spring Framework 4.2/Boot 1.3 中根据 Origin HTTP 请求标头设置动态 Access-Control-Allow-Origin?【英文标题】:How to set dynamic Access-Control-Allow-Origin based on Origin HTTP request header in Spring Framework 4.2/Boot 1.3? 【发布时间】:2015-12-24 04:45:36 【问题描述】:Spring 4.2 has CORS support,但是必须手动设置允许的来源。与身份验证结合使用时会出现问题,因为Access-Control-Allow-Origin: *
不支持身份验证。
如何自动设置?对 Ionic/Cordova 客户端非常有用。
即如果客户端发送Origin: assets-library://whatever/
,那么服务器将发送Access-Control-Allow-Origin: assets-library://whatever/
功能请求:https://jira.spring.io/browse/SPR-13511
【问题讨论】:
我在JIRA问题的cmets中回答了你,这个应该已经支持了。 【参考方案1】:通过 Spring Boot 的“默认”,Spring 4.2 在使用 @CrossOrigin
或 addCorsMappings()
时确实支持我描述的场景。
不是默认的是使用Sébastien's technique described here(我已经更新了答案)。必须注意:
config.setAllowCredentials(true);
因为CorsConfiguration
的真实默认值是null
,它被视为false
。
【讨论】:
以上是关于如何在 Spring Framework 4.2/Boot 1.3 中根据 Origin HTTP 请求标头设置动态 Access-Control-Allow-Origin?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Eclipse 中查看 Spring Framework Javadoc?
我如何说服 spring 4.2 将 OPTIONS 请求传递给控制器