卓尔高考网

GrantedAuthority(已授予的权限)

篇首语:本文由小编为大家整理,主要介绍了GrantedAuthority(已授予的权限)相关的知识,希望对你有一定的参考价值。

是什么?

GrantedAuthority => 已被授予的权限

 

哪里来?

Authentication对象不但可以获取Principal对象,还可以获取用户对应的权限集合,即GrantedAuthority。

Authentication.getAuthorities() => GrantedAuthority数组

 

有什么内容?

    通常就是角色,比如ROLE_ADMINSTRATOR(管理员角色)或ROLE_HR_SUPERVISOR(HR角色)

 

用途:角色将被用于Web授权,方法授权和领域对象授权。

 

在哪被用?

通常被UserDetailService加载,跟受保护资源所需要的权限进行比对。如果满足要求的权限,则可调用该资源。

 

注意:GrantedAuthority是应用级别的权限,并不是专门为了一个领域对象。

 

源码查看:

 

GrantedAuthority接口:

 

Spring Security提供的简单实现:

 

 

由源码可知:所谓的权限并没有想象中的那么复杂,其原理大致就是从数据库中取得对应用户的权限(这里指角色)字符串集合,填充并组装成GrantedAuthority集合而已。

 

待解决问题:

    对比Shiro,Shiro有粗粒度和细粒度的权限之分,有单独的接口,比如粗粒度的是Role,细粒度的是Permission。那Spring Security呢?

    以上有涉及到的都是粗粒度的权限,那细粒度的权限呢,是自定义一个GrantedAuthority实现类吗?

 

 

以上是关于GrantedAuthority(已授予的权限)的主要内容,如果未能解决你的问题,请参考以下文章

您可能还会对下面的文章感兴趣: