我试图弄清楚JHipster如何使用HTTP会话保护应用程序安全并记录用户。 到目前为止,我已经设法理解了这样的流程:
1)登陆页面home.component将请求发送到api/account
带有会话Cookie(如果有的话)
2)如果没有活动会话,我们可以填写登录表格并登录
向api/authentication
发送请求(需要步骤1中的XSRF cookie)
3)第2步成功后,前端将凭据从登录表单发送到api/account
但是在所有这些步骤中,我们需要拦截后端发送的cookie,然后将它们发送回去,以便能够通过CSRF保护。
JHipster项目的哪一部分负责?
是吗?使用webpack / browsersync还是JHipster创建的一些我缺少的Angular代码?
编辑
当我要对自定义模板/样式和JHipster生成的服务进行大量更改时,出现了我的问题。我已经将模板与jhipster服务相关联。
当我尝试登录用户时,我会进入spring控制台,如下所示:
Forbidden: Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-XSRF-TOKEN'
从之前的请求到api/authentication
,我得到的答复是
Set-Cookie: XSRF-TOKEN=a129cb47-ec96-47be-aaae-69f90848c466; path=/
在浏览器网络中。
所以我用错误的名称设置了cookie。我已在浏览器中手动将cookie名称更改为:X-XSRF-TOKEN
并重新发送请求。新错误如下所示:
Forbidden: Could not verify the provided CSRF token because your session was not found.
我对流程的了解不够,所以我无法找出问题所在。也许我搞砸了,也许JHipster生成了一些负责此工作的代码。 JHipster Angular前端中有一些类,例如StateStorageService。他们参与了我的问题还是与该问题无关?
答案 0 :(得分:0)
将移动应用程序连接到Spring Boot的后端时,我遇到了同样的问题。因此,基本上,Angular在核心功能下有一种称为拦截器的方法。在拦截器下,收集响应,并在浏览器Cookie或我的情况下的Ionic Local Storage中将Cookie捕获并更新X-XSRF-TOKEN。