有一个包含用户权限的 Oauth2Authentication 对象。当我想获得它的权威并将其设置为User对象的权威时,如下所示:OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) SecurityContextHolder.getContext().getAuthentication();LinkedHashMap linkedHashMap = (LinkedHashMap) oAuth2Authentication.getUserAuthentication().getDetails();user.setAuthorities((Set<GrantedAuthority>) oAuth2Authentication.getAuthorities());引发以下异常:java.lang.ClassCastException: java.util.Collections$UnmodifiableRandomAccessList 不能 cast to java.util.Set我该如何修复它?注:用户权限对象的类型为Set<GrantedAuthority>
1 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
如果 是 ,您可以轻松地从中创建一个:oAuth2Authentication.getAuthorities()
List
Set
user.setAuthorities(new HashSet<GrantedAuthority>(oAuth2Authentication.getAuthorities()));
请注意,应具有 适当的实现,以便用作 .GrantedAuthority
hashCode()
equals()
HashSet
添加回答
举报
0/150
提交
取消