从 JWT 中获取 Set<String> 类型的对象?
Fetching an object of type Set<String> from a JWT?
我正在尝试使用 JJWT 库从 JSON 网络令牌中获取一些数据: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: Expected value to be of type:
interface java.util.Set, but was class java.util.ArrayList
设置此声明时,类型为 Set
public Set<String> getRoles() {
return roles;
} ....
claim("Role", user.getRoles())
有什么解决办法吗?
JSON 因此 JWT 没有 Set
的概念,将数据检索为 Array / ArrayList
并将其转换为 Set:Easiest way to convert a List to a Set in Java
我正在尝试使用 JJWT 库从 JSON 网络令牌中获取一些数据: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: Expected value to be of type: interface java.util.Set, but was class java.util.ArrayList
设置此声明时,类型为 Set
public Set<String> getRoles() {
return roles;
} ....
claim("Role", user.getRoles())
有什么解决办法吗?
JSON 因此 JWT 没有 Set
的概念,将数据检索为 Array / ArrayList
并将其转换为 Set:Easiest way to convert a List to a Set in Java