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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从Postman休息客户端发送spring csrf令牌?相关的知识,希望对你有一定的参考价值。

我在spring框架中有csrf保护。所以在每个请求中,我从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");

在ajax

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

我不知道生成csrf令牌并包含在Postman Rest Client的标题部分?你能帮我从Postman Rest Client发送csrf令牌吗?

答案

最简单的方法可以始终如一地执行此操作,因此您不必每次都获取令牌:

注意:您需要安装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);

编辑对于使用5.5.2邮递员或更高版本的任何人,您还必须解码cookie,他们还提供了获取cookie的替代方法,因为@Sacapuces指出

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

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

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

enter image description here

  1. 现在,在运行新请求之前,请确保运行登录,它将存储环境变量,然后当您运行实际请求时,它将自动附加它。
另一答案

我可以通过以下步骤发送带有csrf令牌的REST:

  1. 登录时,Spring安全性会自动生成CSRF令牌。它将显示在响应头中。
  2. 通过在标头上设置带有CSRF令牌的X-CSRF-TOKEN,可以在后续请求中使用CSRF令牌。
另一答案

首先,您需要安装PostMan Interceptor并激活它以访问浏览器cookie。

  1. 您必须通过发出GET请求来获取CSRF令牌:标题:“XSRF-TOKEN”和值:“获取”
  2. 你应该在cookie选项卡中看到令牌并且可以复制它(注意:你可以配置spring如何命名cookie。也许你的cookie有另一个名字而不是“XSRF-TOKEN”。注意:你有删除这个空白的字符在来自换行符的令牌)
  3. 现在制作你的POST请求并将标题设置为:标题:“X-XSRF-TOKEN”和值:“你复制的令牌没有空格”
另一答案

对我而言,工作变量是将X-CSRF-TOKEN添加到标题中。 enter image description here

另一答案

如果您不想配置环境变量等,这是最快的解决方案

https://stackoverflow.com/a/49249850/3705478

另一答案

请将X-CSRF-Token作为密钥和FETCH作为GET请求头中的值,您将在响应头中收到令牌

以上是关于如何从Postman休息客户端发送spring csrf令牌?的主要内容,如果未能解决你的问题,请参考以下文章

如何从我的休息服务发送一个 json 对象,以便我可以在客户端 javascript 上解析出来

如何使用 burpsuite 测试休息 api?

服务器发送事件 Spring Webflux 返回事件名称以响应来自休息控制器的响应

如何使用 Postman 表单数据将 POST 请求发送到 Spring Boot REST API?

如何确定向远程 Spring Boot 服务器发送请求的 URL?

Spring和Android客户端的登录问题