如何从 Postman Rest 客户端发送 spring csrf 令牌?

2023-12-08

I have CSRF保护在Spring框架中。因此,在每个请求中,我从 ajax 调用的标头中发送 csrf 令牌,这是完美的工作。

<meta name="_csrf" content="${_csrf.token}"/>
<meta name="_csrf_header" content="${_csrf.headerName}"/>

var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");

In ajax

beforeSend: function(xhr) {
                xhr.setRequestHeader(header, token),
                xhr.setRequestHeader("username", "xxxx1"),
                xhr.setRequestHeader("password", "password")
            }

I haven't any idea to generate csrf token and include in header section of Postman Rest Client ? Would you please help me to send csrf token from Postman Rest Client? enter image description here


一致执行此操作的最简单方法,这样您就不必每次都获取令牌:

注意:您需要安装 PostMan Interceptor 并激活它才能访问浏览器 cookie

  1. 创建一个新环境以便存储环境变量

enter image description here

  1. 创建一个带有测试的登录方法,将 XSRF cookie 存储在环境变量中,在测试选项卡中发布此代码

    //Replace XSFR-TOKEN with your cookie name
    var xsrfCookie = postman.getResponseCookie("XSRF-TOKEN");
    postman.setEnvironmentVariable("xsrf-token", xsrfCookie.value);
    

EDIT对于使用 5.5.2 postman 或更高版本的任何人,您还必须解码 cookie,并且正如 @Sacapuces 指出的那样,他们还提供了获取 cookie 的替代方法

pm.environment.set("xsrf-token", decodeURIComponent(pm.cookies.get("XSRF-TOKEN")))

现在您将拥有一个包含 xsrf-token 的环境变量。

  1. 保存您的登录方法

  2. 创建您想要创建的新帖子,并在标题中添加您的 XSRF-Token-Header Key 以及句柄栏中的环境变量以访问它{{}}

enter image description here

  1. 现在,在运行新请求之前,请确保运行登录,它将存储环境变量,然后当您运行实际请求时,它会自动附加它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Postman Rest 客户端发送 spring csrf 令牌? 的相关文章

随机推荐