我对Spring Security并不熟悉,我在尝试检索与特定用户相关的授权列表时遇到了以下问题。
我有这个方法可以检索连接用户(这个方法正常工作):
protected CustomUserDetail getUtenteConnesso() {
return (CustomUserDetail) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
}
我想要做的是:
ArrayList<GrantedAuthority> autorizzazioni = (ArrayList<GrantedAuthority>) getUtenteConnesso().getAuthorities();
我想要检索与此用户相关联的授予权限列表,但是当我执行此方法时会抛出异常。
我认为问题在于getAuthorities()方法的签名定义在org.springframework.security.core.userdetails.User类中:
public Collection<GrantedAuthority> getAuthorities() {
return authorities;
}
因此,该方法返回一个通用的Collection接口。
我试图将这个Collection强制转换为ArrayList,但似乎不起作用。
出了什么问题?我漏掉了什么?如何解决这个问题?