如何把io.jsonwebtoken.Claims转换成java.util.Map <string,object>?

时间:2017-05-01 10:34:40

标签: java maven jwt jjwt

我使用JWT maven依赖项处理io.jsonwebtoken令牌。

  

我能够成功创建具有自定义有效负载的JWT令牌。

现在,当我要parse时,我需要Map<String, Object>对象,其中包含在创建时添加的所有自定义有效内容,但不幸的是我是无法完成它。

我正在使用以下代码来解析它,

JwtParser parser = Jwts.parser();
Claims claims = parser
                .setSigningKey(DatatypeConverter.parseBase64Binary(SIGN_KEY))
                        .parseClaimsJws(jwt).getBody();

现在,我有io.jsonwebtoken.Claims,但不知道如何将此io.jsonwebtoken.Claims转换为java.util.Map<String,Object>

但是我尝试用这个知道(几乎看起来像我想要的): -

System.out.println(claims.toString()); -> this is correctly prints whole custom payloads.

但我需要Map<String,Object>

任何帮助都会受到赞赏.. !!

2 个答案:

答案 0 :(得分:1)

SAFEARRAY延伸iResult = sendto(send_sock, VarPtr(SendBuf(0)), buf + 1, 0, RecvAddr, Len(RecvAddr))

io.jsonwebtoken.Claimsjava.util.Map<String, Object>唯一提供的实现,是Map的实现,它修饰io.jsonwebtoken.impl.DefaultClaims并添加了几种方法。

因此,您无需转换为Claims,因为它已经LinkedHashMap<String, Object>。 如果您想摆脱自定义方法并将Map转换为Map<String, Object>,最简单的方法就是将Claims传递给HashMap&#39}。的构造函数。它与您手动执行的操作相同。

Claims

答案 1 :(得分:0)

  

最后,我通过倾听自己的答案得到了答案 - 不要停下来直到得到答案,

    WebDriverWait wait = new WebDriverWait(driver, 5);
    WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text() = 'Save']"))); 
    element.click();