权限的分类(shiro项目中来的五)

本文介绍了一种基于角色的权限管理系统的设计方案,包括菜单显示权限、页面操作权限及特殊图标权限的实现方式,通过BigInteger进行权限位运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


第一种权限:菜单栏展示还是不展示的权限(粗颗粒)

假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请点击http://106.12.206.16:8080/qingruihappy/index.html

 


实现方法,在SYS_ROLE表中添加一个字段rights,通过

public static BigInteger sumRights(String[] rights){
BigInteger num = new BigInteger("0");
for(int i=0; i<rights.length; i++){
num = num.setBit(Integer.parseInt(rights[i]));
}
return num;
}


public static boolean testRights(BigInteger sum,int targetRights){
return sum.testBit(targetRights);
}
这一段代码来验证有没有权限,来空值hasMenu是true还是false来空值展示还是不展示


第二种权限:页面出现增删改查的权限,主要针对页面有增删改以及查的权利,假如菜单有权限,但是这里设置的没有查看的权利,那么就会出现菜单栏有这个图标,但是无法打开这个页面,或者即使打开这个页面也没有办法查看里面相关信息的权限。(细颗粒)

 


实现方法:通过
public static BigInteger sumRights(String[] rights){
BigInteger num = new BigInteger("0");
for(int i=0; i<rights.length; i++){
num = num.setBit(Integer.parseInt(rights[i]));
}
return num;
}
这一段代码在表SYS_ROLE中设置,add_qx,del_qx,edit_qx,cha_qx,四字字段来设置一个值,和上面的rigths的值的道理是一样的,然后通过代码逻辑判断来给前台传四个值add,del,edit,cha四字字段的Boolean值来判断有没有权限
map.put("add", (RightsHelper.testRights(map.get("adds"), MENU_ID)) || isAdmin?"1":"0");
map.put("del", RightsHelper.testRights(map.get("dels"), MENU_ID) || isAdmin?"1":"0");
map.put("edit", RightsHelper.testRights(map.get("edits"), MENU_ID) || isAdmin?"1":"0");
map.put("cha", RightsHelper.testRights(map.get("chas"), MENU_ID) || isAdmin?"1":"0");

public static boolean testRights(BigInteger sum,int targetRights){
return sum.testBit(targetRights);
}

 


第三种权限:页面某些特定图标的权限,比如导入导出表格,下载等等,这个权限必须在有某个页面查看的权利的基础上(细粒度)

 


实现方法:
页面某些特定图标的权限,比如导入导出表格,下载等等,这个权限必须在有某个页面查看的权利的基础上(细粒度)(shiro项目中来的四)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值