我正在尝试使用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())
任何想法如何解决这个问题?
答案 0 :(得分:2)
JSON,因此JWT没有Set
的概念,将数据检索为数组/ ArrayList
并将其转换为集合:Easiest way to convert a List to a Set in Java