我正在尝试解码返回的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?
谢谢
答案 0 :(得分:1)
这几乎就是.transform的用途。 您可以使用jsonPath提取令牌,进行转换以获取子,然后断言它与用户名匹配。
(我还没有尝试过实际的jwt提取/验证)
.check(jsonPath("$.access_token").transform(jwt => JWT.decode(jwt).getClaim("sub").asString()).is("${username}")
答案 1 :(得分:0)
.check(jsonPath("$.access_token")
.transform(jwt => JWT.decode(jwt).getClaim("preferred_username").asString())
.is(session => {
session("username").as[String].toLowerCase()
})
最后为我工作