Spring和angular5 XSRF安全问题

时间:2018-03-15 07:08:09

标签: spring angular

我有一个项目,我使用spring作为后端(使用带有jhipster的微服务生成)和angular5作为前端

在服务器端设置CSRF安全性被添加(当我们使用Jhipster创建微服务时默认启用)

当我使用angular时,无需更改角度代码来处理XSRF令牌发送(csrf和XSRF是相同的事情)

问题背景:

当我在本地测试UI和apis时,它很有效。在这种情况下 服务器将在浏览器缓存上将cookie设置为XSRF-TOKEN,并且角度应用程序会在每个请求的标头中返回此cookie。这在本地工作正常

本地角度应用:http://localhost:4200

api网关应用本地http://localhost:8080

问题: 当我在专用服务器上部署此应用程序时

角度应用:http://111.22.33.44/angualrapp

api gateway at:http://111.22.33.44:8080

(以上是假设的域名,与我的应用程序使用的模式相同)

当我做这个设置时,我面临以下问题 - XSRF令牌未存储在我的浏览器缓存中 - 每个请求都给我403 Forbidden错误(因为,我认为XSRF-TOEKN为空)

问:1。我是如何解决上述问题的?

问题2。当Angular和Spring代码部署到不同的域(起源)时,这种配置是否可行?

问题3。由于我分配给应用程序的域名,我可以面对这个问题吗?

1 个答案:

答案 0 :(得分:0)

你好朋友我刚刚深入研究这个问题,我从以下问题得到了帮助

Share cookie between subdomain and domain

问题2。当Angular和Spring代码部署到不同的域(起源)时,这种配置是否可行?

ans:需要在同一个父域上托管这两个应用 例如:

angular app:angularapp.parentdomain.com

api's:apis.parentdomain.com:8080