从JWT获取Set <string>类型的对象?

时间:2017-12-06 17:02:05

标签: java collections jjwt

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

方法签名如下:

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

在声明属性中,我有一组String类型。

尝试从此方法中获取时如此

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())

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

1 个答案:

答案 0 :(得分:2)

JSON,因此JWT没有Set的概念,将数据检索为数组/ ArrayList并将其转换为集合:Easiest way to convert a List to a Set in Java