Java Gatling验证解码的JWT令牌

Java Gatling验证解码的JWT令牌,java,scala,gatling,Java,Scala,Gatling,我试图解码返回的JWT令牌,并检查子声明是否与用户名匹配。但我似乎找不到这样做的语法 ... .check(status.is(HttpResponseStatus.OK.code())) .check(jsonPath("$.access_token").saveAs("access_token")) .check(jsonPath("$.refresh_token").exists) .check(JWSObject.parse("${acce

我试图解码返回的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提取/验证)


尝试使用
com.auth0.jwt.jwt
->
jwt.decode(jwt).getClaim(“sub”).asString()。Lib:i.e.:
com.auth0:java jwt:3.4.0
@Dumbo感谢您的响应,我的主要问题是如何根据http请求流中的另一个字符串检查此字符串的输出。e、 检查decodedJWTString.equals(“用户名”)为什么不
。然后检查(JWT.decode(JWT).getClaim(“sub”).asString()=“用户名”)
.check(jsonPath("$.access_token").transform(jwt => JWT.decode(jwt).getClaim("sub").asString()).is("${username}")