为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 java 中将 UnmodifiableRandomAccessList

如何在 java 中将 UnmodifiableRandomAccessList

繁星点点滴滴 2022-07-27 21:24:03
一个包含用户权限的 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 无法转换为 java.util.Set我如何解决它?注意:用户对象的权限类型是Set<GrantedAuthority>
查看完整描述

1 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

如果oAuth2Authentication.getAuthorities()是 a List,您可以轻松地从中创建 a Set

user.setAuthorities(new HashSet<GrantedAuthority>(oAuth2Authentication.getAuthorities()));

请注意,GrantedAuthority应该正确实现hashCode()andequals()才能用作 a 的成员HashSet



查看完整回答
反对 回复 2022-07-27
  • 1 回答
  • 0 关注
  • 150 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信