发布请求不适用于 Spring 安全性和 Angular 5
Posted
技术标签:
【中文标题】发布请求不适用于 Spring 安全性和 Angular 5【英文标题】:Post request does not working with Spring security and angular 5 【发布时间】:2018-11-07 17:26:00 【问题描述】:在我的应用程序中,我们使用的是 apache wicket、Angular 5 和 Spring-REST, 我们有不同的 UI wicket 技术和 angular 和 spring rest 都部署在同一台服务器上。
在使用 Spring Security 进行授权的应用程序中,当 Angular GET 请求到达服务器时它工作正常,但是当 POST 请求到来时,CORS 过滤器不会响应 Angular 获取错误 403。
我们在下面配置了 CORS 过滤器
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
response.addHeader("Access-Control-Allow-Headers", "Content-Type,x-requested-with");
response.addHeader("Access-Control-Max-Age", "48000");
【问题讨论】:
你能提供失败的post包含http错误消息的转储 【参考方案1】:那是因为您必须将您的请求与承载一起发送。如果您不这样做,那么是的,您会收到 403(未经授权)响应。
将Authorization
标头添加到包含Bearer [token]
的请求中。
如果您这样做但仍然无法正常工作,请考虑从后端公开标头。在您的 CORS 配置中,配置 Access-Control-Expose-Headers
标头以公开 Authorization
标头。
【讨论】:
以上是关于发布请求不适用于 Spring 安全性和 Angular 5的主要内容,如果未能解决你的问题,请参考以下文章
Spring 安全忽略 url 不适用于我们的安全忽略方法 [重复]
Spring security permit all 不适用于多个 url
Spring Boot Actuator Endpoints 安全性不适用于自定义 Spring Security 配置
Java Spring REST API CORS 不适用于通过 jQuery 和 Chrome 的 DELETE 请求
带有 Spring Security 核心和 CORS 插件的 grails REST API 不适用于 OPTIONS http 方法请求