前言

  在Postman中可以编写和执行自动化测试,使用 JavaScript 编写基本的 API 测试,自由编写任何用于自动化测试的测试方案。

在POSTMAN中读取Cookie值

  1. 我们需要向“ /doLogin”Web API 发送请求以接收用户详细信息以登入系统,但我们不能直接发送请求。

  2. 我们需要发送一个登录请求(具有有效的凭据)以接收令牌作为 Cookie 值 ,然后将其设置为“环境变量”。

  3. 最后,我们将在请求标头中使用“环境变量” 将授权的请求发送到“/doLogin”Web API。

具体流程

  1. 准备正确的登录表单,即用户名和密码是有效的,发送请求给Spring Security后端应用。此时请求没有带有令牌,后端检查这个请求没有带有令牌token,就会利用 CookieCsrfTokenRepository 来生成并返回一个 Token 放进 Cookie 中并返回给发送请求的 Postman。

  2. 如下面的截图所示,我们收到了名为 'XSRF-TOKEN' 的 Cookie,这是我们的令牌,我们需要以编程方式(使用JavaScript)从 Tests 测试编辑器中读取该令牌并将其设置为 Environment 变量,如以下快照所示:(服务端的 response 的 body 内容是 Spring Security 自动生成的登录表单页面,带有 _csrf 令牌参数,这里就不截图了)

  Postman 不会将 cookie 作为响应标头的一部分来处理,相反,postman从chrome(使用拦截器插件)接收cookie,以读取从响应接收到的cookie,postman向我们提供了以下方法:

postman.getResponseCookie("Cookie-name")

  第1行: token1 被声明为新变量,用于保存 getResponseCookie("XSRF-TOKEN").value 方法中的值以读取 'XSRF-TOKEN' 的 cookie 值。

  第2行:如图所示,'XSRF-TOKEN'  cookie的值在两行中被接收, 这在我们的 cookie 值中添加了一个新行字符“ <br/>”,我们需要摆脱它来接收正确的cookie值,因此我们使用 JavaScript replace函数从字符串中查找换行符,并将其替换为空字符“”。

  第3行:我们使用 Postman 提供的方法来设置 token2 变量,该变量现在包含正确的 cookie 值,并将其设置为名称为 'X-CSRF-TOKEN' 的“环境变量”,我们可以将其用作变量 {{X-CSRF-TOKEN}} 在其他请求中。

  3. 编辑并保存上面的代码后,转到 POSTMAN -> 管理环境 -> Pentest Environment ->编辑并添加 'X-CSRF-TOKEN' 作为变量和 {{X-CSRF-TOKEN}} 作为值(注意上面截图左上角),如下所示:

  4. 转到 "/doLogin" Web API选项卡 -> 单击下面 Header选项 -> 打开并添加 'X-CSRF-TOKEN' 作为变量和 {{X-CSRF-TOKEN}} 作为值,如下所示:

  5. 转到 "/doLogin" Web API,再次发送 Send 请求,脚本将被执行,并且将 'X-CSRF-TOKEN' 设置为环境变量,你将获得响应,并返回数据,就像经过身份验证的请求一样,如下面的截图所示:

参考:参考1

Spring Security:如何在Postman中优雅地测试后端API(前后端分离)的更多相关文章

  1. 如何在MyBatis中优雅的使用枚举

    问题 在编码过程中,经常会遇到用某个数值来表示某种状态.类型或者阶段的情况,比如有这样一个枚举:   public enum ComputerState { OPEN(10), //开启 CLOSE( ...

  2. 如何在 Swoole 中优雅的实现 MySQL 连接池

    如何在 Swoole 中优雅的实现 MySQL 连接池 一.为什么需要连接池 ? 数据库连接池指的是程序和数据库之间保持一定数量的连接不断开, 并且各个请求的连接可以相互复用, 减少重复连接数据库带来 ...

  3. spring security进阶 使用数据库中的账户和密码认证

    目录 spring security 使用数据库中的账户和密码认证 一.原理分析 二.代码实现 1.新建一个javaWeb工程 2.用户认证的实现 3.测试 三.总结 spring security ...

  4. Spring Security在登录验证中增加额外数据(如验证码)

    在使用Spring Security框架过程中,经常会有这样的需求,即在登录验证时,附带增加额外的数据,如验证码.用户类型等.下面将介绍如何实现. 注:我的工程是在Spring Boot框架基础上的, ...

  5. 如何在Vue中优雅的使用防抖节流

    1. 什么是防抖节流 防抖:防止重复点击触发事件 首先啥是抖? 抖就是一哆嗦!原本点一下,现在点了3下!不知道老铁脑子是不是很有画面感!哈哈哈哈哈哈 典型应用就是防止用户多次重复点击请求数据. 代码实 ...

  6. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_17-认证接口开发-申请令牌测试

    远程 调用Spring Security来申请令牌,然后把申请到令牌存储到redis里面 cookieMaxAge: ‐1   -1表示浏览器一关闭cookie就失效. 测试远程申请令牌 TestCl ...

  7. 如何在DevOps中实施连续测试

    在过去的十年中,对软件开发的需求已急剧发展.软件已成为公司获得竞争优势的关键优势,特别是如果您的公司属于SaaS范畴.通过在SDLC中实施瀑布等传统流程,组织现在正在向敏捷过渡,以便以更快的速度在市场 ...

  8. Spring Boot+Jpa(MYSQL)做一个登陆注册系统(前后端数据库一站式编程)

    Spring Boot最好的学习方法就是实战训练,今天我们用很短的时间启动我们第一个Spring Boot应用,并且连接我们的MySQL数据库. 我将假设读者为几乎零基础,在实战讲解中会渗透Sprin ...

  9. vue 项目中使用mock假数据实现前后端分离

    也是查了很多的资料,整理出来.实现了前后端的分离,用到的技术vue-cli,webpack,node,json-server.首先全局安装json-server cnpm i json-server ...

随机推荐

  1. ysoserial payloads/JRMPClient

    ysoserial payloads/JRMPClient 环境:JDK8u102 payloads/JRMPClient可以配合exploit/JRMPListener模块来使用 1.在自己服务器上 ...

  2. ysoserial CommonsColletions7分析

    CC7也是一条比较通用的链了,不过对于其原理的话,其实还是挺复杂的.文章如有错误,敬请大佬们斧正 CC7利用的是hashtable#readObject作为反序列化入口.AbstractMap的equ ...

  3. Collections集合工具类和可变参数

    Collections常用的API: public static <T> boolean addAll(Collection<? super T> c, T... elemen ...

  4. http请求在https中使用

    问题原因:HTTPS页面里动态的引入HTTP资源,比如引入一个js文件,会被直接block掉的.在HTTPS页面里通过AJAX的方式请求HTTP资源,也会被直接block掉的. 解决方案: <m ...

  5. Linux系列(1) - 使用Hyper-V安装Linux系统

    前言 使用工具:Hyper-V,补充:hyper-v是一项技术,而vmware是一款软件.具体区别自行百度 LINUX版本:CentOS-8.4.2105-x86_64-dvd1.iso Window ...

  6. 51nod1676-无向图同构【乱搞】

    正题 题目连接:http://www.51nod.com/Challenge/Problem.html#problemId=1676 题目大意 给出两张\(n\)个点\(m\)条边的无向图,求这两张图 ...

  7. P5631-最小mex生成树【线段树,并查集】

    正题 题目链接:https://www.luogu.com.cn/problem/P5631 题目大意 \(n\)个点\(m\)条边的一张图,求\(mex\)值最小的一棵生成树. 解题思路 考虑比较暴 ...

  8. JVM类加载器的分类

    类加载器的分类 JVM支持两种类型的类加载器,分别为引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader). 从概念上来讲,自定 ...

  9. [RabbitMQ]下载&安装

    RabbitMQ是基于Erlang语言开发的消息中间件,所以使用RabbitMQ需要安装Erlang和RabbitMQ两个软件. 1 Erlang 1.1 下载 官网下载地址:https://www. ...

  10. Zookeeper的选举机制和同步机制超详细讲解,面试经常问到!

    前言 zookeeper相信大家都不陌生,很多分布式中间件都利用zk来提供分布式一致性协调的特性.dubbo官方推荐使用zk作为注册中心,zk也是hadoop和Hbase的重要组件.其他知名的开源中间 ...