Java Gatling验证解码的JWT令牌
我试图解码返回的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
...
.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}")