gpt4 book ai didi

csrf - 如何将 CSRF Token 设置为不同的上下文路径

转载 作者:行者123 更新时间:2023-12-03 18:41:43 25 4
gpt4 key购买 nike

我们基于 Angular 的 web 应用程序与在不同域和上下文路径上运行的企业门户集成。我正在使用基于 Spring Security 的 CSRF token 来验证传入的请求。该应用程序在本地完美运行,但是当我将它与门户集成时,所有的 post 调用都失败了 403,因为 Angular 无法读取 XSRF-Token 并将请求 header 中的 X-XSRF-Token 设置为 API 调用。经过调查,我发现门户和我们的应用程序的上下文路径不同,因此 spring 将带有路径、过期和域的 XSRF-Token 设置为 Null。当 spring 创建它时,有什么方法可以将 XSRF-Token 设置为特定的 cookie 路径?

注意:我有一个替代解决方案来创建过滤器并从请求 header 中读取 cookie,并使用我想要的路径在浏览器上放置一个新的 cookie。我正在寻找配置级别的解决方案。

最佳答案

在您的配置安全性(Java 文件)中,可以添加:

private CsrfTokenRepository getCsrfTokenRepository() {
CookieCsrfTokenRepository tokenRepository = CookieCsrfTokenRepository.withHttpOnlyFalse();
tokenRepository.setCookiePath("/");
return tokenRepository;
}

并更改函数 configure(...) ,该行:
http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()).and()...

http.csrf().csrfTokenRepository(this.getCsrfTokenRepository()).and()...
这允许有一个解决方案来个性化 cookie 的路径 XSRF-TOKEN .

关于csrf - 如何将 CSRF Token 设置为不同的上下文路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42354301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com