Gatling 验证解码的 JWT 令牌

Gatling Verifying Decoded JWT token

我正在尝试解码返回的 JWT 令牌,并检查 sub 声明是否与用户名匹配。但我似乎找不到这样做的语法。

...
      .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}")