码迷,mamicode.com
首页 > 其他好文 > 详细

GrantedAuthority(已授予的权限)

时间:2018-08-04 11:46:36      阅读:1465      评论:0      收藏:0      [点我收藏+]

标签:复杂   ant   shiro   get   Superviso   问题   ima   查看   数据   

是什么?
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(已授予的权限)

标签:复杂   ant   shiro   get   Superviso   问题   ima   查看   数据   

原文地址:https://www.cnblogs.com/longfurcat/p/9417422.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!