文档章节

shiro中获得当前subject的所有角色,权限列表

921977939qqcom
 921977939qqcom
发布于 2017/01/24 17:45
字数 214
阅读 723
收藏 1

原本shiro就只提供了普通方法HasRole,HasPermission去判断当前用户有无角色或者权限

但是有的情况下,我们想知道当前用户拥有的所有角色或者权限.

 

前提:

spring在controller中注入我们自定义的shiroDbRealm,通过分析源码,只能通过这个实现

    final ShiroDbRealm shiroDbRealm;

    @Autowired
    public PageController(ShiroDbRealm shiroDbRealm) {
        this.shiroDbRealm = shiroDbRealm;
    }

 

然后可以通过一下方式进行

  • 方式一:
shiroDbRealm.doGetAuthorizationInfo(SecurityUtils.getSubject().getPrincipals())

这种方式相当于重新执行一遍doGetAuthorizationInfo,获取

 

  • 方式2
shiroDbRealm.getAuthorizationCache().get(SecurityUtils.getSubject().getPrincipals())

 

这个方式使用到了shiro的缓存,

shiro在我们自定义的shiroDbRealm中调用doGetAuthorizationInfo后

AuthorizationInfo保存了角色,权限

然后AuthorizationInfo存到缓存(Ehcache等)上的

开启缓存后就可以使用这个方式获取

© 著作权归作者所有

921977939qqcom
粉丝 0
博文 5
码字总数 2084
作品 0
中山
私信 提问

暂无文章

Linus 本尊来了!为什么 KubeCon 越来越火?

阿里妹导读: 从200人的小会议到3500 多位云原生和开源领域工程师齐聚一堂的大会,KubeCon 只用了四年,昨天,在KubeCon China 2019 上阿里巴巴宣布开源 OpenKruise,今天,Linus 本尊竟然现...

阿里云云栖社区
11分钟前
0
0
五小时构建云原生电商平台 | KubeCon SOFAStack Workshop 详解

本文根据 KubeCon China 2019 同场活动 SOFAStack Cloud Native Workshop 内容整理, 文末包含文档、PPT 地址,欢迎试用和提出建议。 2019 年 6 月 25 日,在 KubeCon China 2019,全球知名开...

SOFAStack
12分钟前
0
0
跨平台开发框架DevExtreme v19.1.4正式发布|附下载

DevExtreme Complete Subscription是性能最优的 HTML5,CSS 和 JavaScript 移动、Web开发框架,可以直接在Visual Studio集成开发环境,构建iOS,Android,Tizen和Windows Phone 8应用程序。D...

FILA6666
13分钟前
0
0
数据库链接断开 Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

报错信息如下: Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 97,130 mill......

为了美好的明天
20分钟前
1
0
Flutter for Web 详细预研

背景 Google在最新的Google I/O上推出了Flutter for Web,旨在进一步解决一次代码,多端运行的问题。Flutter for Web还处于早期试验版,官方不建议在生产环境上使用。那么到底它的实际情况怎...

阿里云官方博客
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部