shiro实现HasAnyPermission 标签效果

本文介绍在使用Shiro权限控制时,如何实现类似`hasAnyRole`的`hasAnyPermission`标签功能。当需要控制页面显示,如菜单栏下有多个子菜单,每个子菜单对应不同权限时,此功能变得尤为重要。通过创建自定义的`HasAnyPermissionTag`类并修改`shiro.tld`文件添加新标签,可以实现根据用户拥有p1或p2权限中的任何一个来显示父级菜单。
摘要由CSDN通过智能技术生成

在使用shiro 的时候发现,有hasAnyRole 却没有hasAnyPermission的标签,感觉很疑惑,有时我控制页面的显示的时候就是需要这种,比如:

一个菜单下面有3个子菜单
|-菜单栏目一
|——-|–子栏目一
|——-|–子栏目二

像这样,这时,假设子栏目一显示的条件是hasPermission p1, 子栏目二是p2,那么我们可以认为父级(菜单栏一,只需要在有p1或者p2的情况下就显示),这时就需要一个 类似hasAnyRole的标签-hasAnyPermssion ( 当然,实现这种需要还有其他的方法,我暂时没有想到,用shiro 不是很久。。。。)

具体实现时候,实现是一个HasAnyPermissionTag 类,然后把shiro-web.jar 里面的shiro.tld 里面加入自己定义的标签就行

HasAnypermissionTag 代码如果(查看HasAnyRoleTag 就发现,类似的写法)

package org.apache.shiro.web.tags;

import org.apache.shiro.subject.Subject;

/**
 * 扩展标签,具有列出权限中的任意一个
 * @author yehuan
 *
 */
public<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值