Spring Boot - [=10.5 - CSRF
SpringBoot - Angular 5 - CSRF
我现在迷路了,需要一些帮助。
我有一个
- 带有 SpringSecurtiy 4.3 的 SpringBoot 服务器。
- Angular 5 个应用程序
并且想要启用 CSRF 保护,因为它应该在默认情况下启用(文档说)
:不是!
在 SpringBoot 上我需要添加这些安全配置:
http
.csrf()
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
在 Angular 我需要添加这些模块:
imports: [
...,
HttpClientModule,
HttpClientXsrfModule, //(!)
...
服务器在每个响应中发送 XRSF-TOKEN 的底线。
-但每一个都不同。那是对的吗?我希望在客户端会话中也是如此。
-这里的主要问题是 Angular5 仍然没有在其 post 调用中使用 XRSF-TOKEN(例如)。它没有在其请求中设置 X-XSRF-TOKEN。
我做错了什么或遗漏了什么?
我遇到了同样的问题,我认为这是由于 angular.
版本 5 导致的回归
在解决此问题之前,您可以像我一样添加自己的 'X-XSRF-TOKEN' header。
constructor(private http: HttpClient, private tokenExtractor: HttpXsrfTokenExtractor) {
}
然后手动提取令牌
const token = this.tokenExtractor.getToken() as string;
并将其添加到 header
this.http.post<any>(url, body, {headers: new HttpHeaders().set('X-XSRF-TOKEN', token)})
豪森
我现在迷路了,需要一些帮助。
我有一个
- 带有 SpringSecurtiy 4.3 的 SpringBoot 服务器。
- Angular 5 个应用程序
并且想要启用 CSRF 保护,因为它应该在默认情况下启用(文档说) :不是!
在 SpringBoot 上我需要添加这些安全配置:
http
.csrf()
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
在 Angular 我需要添加这些模块:
imports: [
...,
HttpClientModule,
HttpClientXsrfModule, //(!)
...
服务器在每个响应中发送 XRSF-TOKEN 的底线。
-但每一个都不同。那是对的吗?我希望在客户端会话中也是如此。
-这里的主要问题是 Angular5 仍然没有在其 post 调用中使用 XRSF-TOKEN(例如)。它没有在其请求中设置 X-XSRF-TOKEN。
我做错了什么或遗漏了什么?
我遇到了同样的问题,我认为这是由于 angular.
版本 5 导致的回归在解决此问题之前,您可以像我一样添加自己的 'X-XSRF-TOKEN' header。
constructor(private http: HttpClient, private tokenExtractor: HttpXsrfTokenExtractor) {
}
然后手动提取令牌
const token = this.tokenExtractor.getToken() as string;
并将其添加到 header
this.http.post<any>(url, body, {headers: new HttpHeaders().set('X-XSRF-TOKEN', token)})
豪森