【发布时间】:2015-07-25 16:59:34
【问题描述】:
问题说明:我有一些使用 Spring Security 进行 CSRF 保护的 RESTful API。此外,这些 API 将由 Angular WEB UI 从不同的来源/域访问。我不需要 Spring 身份验证,因为身份验证由 Siteminder 处理。
方法: 我从 Dave Syer 获得了 CSRF 保护的链接:The Login Page: Angular JS and Spring Security Part II,除了一个问题(下)外,它运行良好。
问题:当我的 Angular html 客户端访问同一源/域上的 RESTful API 时,此代码可以正常工作;但是当我尝试从不同的来源访问相同的 API 时,收到错误 403 - Access Forbidden - CSRF token error。
到目前为止我通过扩展您的示例尝试的方法:
-
添加了一个 CORS 过滤器 - Enabling Cross Origin Requests for a RESTful Web Service
response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
上面没有运气。
请建议我是否需要做其他事情才能使其正常工作。
谢谢, 苏曼
【问题讨论】:
标签: angularjs rest spring-security cors csrf