标签:复杂 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