如何在java中设置不可修改的随机访问列表以设置<对象>

有一个包含用户权限的 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>


泛舟湖上清波郎朗
浏览 94回答 1
1回答

芜湖不芜

如果 是 ,您可以轻松地从中创建一个:oAuth2Authentication.getAuthorities()ListSetuser.setAuthorities(new&nbsp;HashSet<GrantedAuthority>(oAuth2Authentication.getAuthorities()));请注意,应具有 适当的实现,以便用作 .GrantedAuthorityhashCode()equals()HashSet
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java