2

我正在尝试使用 JJWT 库从 JSON Web 令牌中获取一些数据:https ://github.com/jwtk/jjwt

方法签名是这样的:

<T> T get(String claimName, Class<T> requiredType);

在声明属性中,我有一组字符串类型。

当尝试像这样从这个方法中获取

Claims claims - Jwts.parser()...
claims.get("Role", Set.class);

我收到以下错误

!io.jsonwebtoken.RequiredTypeException:预期值为类型:接口 java.util.Set,但为类 java.util.ArrayList

设置此声明时,类型为 Set

public Set<String> getRoles() {
    return roles;
}  ....


claim("Role", user.getRoles())

任何想法如何解决这个问题?

4

1 回答 1

3

JSON,因此 JWT 没有概念Set,将数据检索为 Array /ArrayList并将其转换为 Set:在 Java 中将 List 转换为 Set 的最简单方法

于 2017-12-06T17:05:28.897 回答