Angular(4)CSRF在同一台计算机上的不同端口

时间:2017-04-06 06:36:23

标签: spring angular

我有一个小的Spring启动应用程序,它使用两种方法公开REST服务" / upload" (POST)和" / show" (GET)

当我在我的计算机http://computer.domain.com:4200上运行我的角度2应用程序,并在另一个端口http://computer.domain.com:8080上的同一台计算机上使用spring boot rest-service时,角度为2的CSRF部分不想发送带标题的XSRF令牌。

如果我在Spring启动WAR中部署Angular GUI,那么REST和GUI都可以通过http://computer.domain.com:8080访问,那么CSRF相关的一切都可以工作。

我认为Cookies和角度是不可知的'当它来自哪个端口时,只要它来自同一台服务器。

我是否遗漏了一些使角度发送CSRF标头的配置?

1 个答案:

答案 0 :(得分:2)

Cookie /浏览器可能与端口无关。请参阅this question and the related answer

常见设置为to configure angular-cli to setup a proxy

例如,如果您的休息端点以api开头,则应创建proxy.conf.json

{
  "/api": {
    "target": "http://computer.domain.com:8080",
    "secure": false
  }
}

然后将您的package.json start脚本更新为:

"start": "ng serve --proxy-config proxy.conf.json",

前端应该对http://computer.domain.com:4200/api...

进行http调用

希望有所帮助