java - Gatling 验证解码的 JWT 令牌
问题描述
我正在尝试解码返回的 JWT 令牌,并检查子声明是否与用户名匹配。但我似乎找不到这样做的语法。
...
.check(status.is(HttpResponseStatus.OK.code()))
.check(jsonPath("$.access_token").saveAs("access_token"))
.check(jsonPath("$.refresh_token").exists)
.check(JWSObject.parse("${access_token}").getPayload.toJSONObject.get("sub").toString.substring("$username"))
我在期待 HttpCheck 时遇到错误,这种类型是否有 HTTPCheck?
谢谢
解决方案
这几乎正是 .transform 的用途。您使用 jsonPath 提取令牌,进行转换以获取子,然后断言它与用户名匹配。
(我还没有尝试过实际的 jwt 提取/验证)
.check(jsonPath("$.access_token").transform(jwt => JWT.decode(jwt).getClaim("sub").asString()).is("${username}")
推荐阅读
- java - JavaFX项目中的Spring Boot @Value注解为空
- java - 从模板创建信封时从模板获取常规选项卡
- jenkins - Jenkins 是否提供 agent.jar 的 GPG 密钥?
- c# - 如果数据库连接丢失,是否提交了 SaveChange 事务?
- php - 如何通过租用服务器为公司开发私人网站
- javascript - React Native - 使用 React Redux 添加多个标记
- python - 我应该在另一个进程/线程中调用我的异步函数吗?
- c# - 有没有办法仅在使用时打印出一行文本?
- lua - LUA:将对象插入表会覆盖表的其他成员
- r - 在不使用“dplyr”库的情况下避免嵌套 ifelse