`
metadmin
  • 浏览: 167920 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

《玩转细粒度权限管理》 五,细粒度数据查询权限(下)

阅读更多

 

第五章

细粒度数据查询权限

(下)

 

 

上一章讲解通过设计器,设计出数据查询,并在线测试。本章讲解如何快速定制数据查询,如果将业务代码中的 if else 逻辑判断去掉,如何将这种细粒度的权限集成到业务系统。

 

快速定制数据查询

上章定制了“查询所有员工”数据查询。下面我们通过复制的方式快速定制“查询本分公司及下属营业部员工”和“查询本营业部员工”两个数据查询。

 

打开权限设计器   http://localhost:8080/mydemo/metadmin/designer

按照如下步骤操作,来定制“查询本分公司及下属营业部员工”数据查询:

  1. 右击“查询所有员工”,选择弹出菜单中“复制”菜单项;
  2. 在弹出的对话框中,名称栏输入“查询本分公司及下属营业部员工”,描述栏输入“分公司用户具有权限查看”,点击“确认”按钮;
  3. 点击“查询本分公司及下属营业部员工”,选择“ WHERE ”标签页,修改 WHERE 条件;
  4. 右击“条件组”,选择“新增条件组”;
  5. 修改该条件组的“连接符”为“ OR ”;   
  6. 右击刚才新增的条件组,选择“新增 二元条件”;   
  7. 选择第一个字段为“ company.id  
  8. 右击第二个字段,将该字段类型替换为“用户属性”,并选择“ companyId ”用户属性;  
  9. 右击刚才新增的条件组,选择“新增 二元条件”;  
  10. 选择第一个字段为“ company.parentId ”;  
  11. 右击第二个字段,将该字段类型替换为“用户属性”,并选择“ companyId ”用户属性;  
  12. 点击“保存”按钮。

 

 

下图示:(复制数据查询)

 

下图示:(改变字段类型)

 

 

按照如下步骤操作,来定制“查询本营业部员工”数据查询:

1.     右击“查询所有员工”,选择弹出菜单中“复制”菜单项;

2.      在弹出的对话框中,名称栏输入“查询本营业部员工”,描述栏输入“营业部用户具有权限查看”,点击“确认”按钮;

3.     点击“查询本营业部员工”,选择“ WHERE ”标签页,修改 WHERE 条件;

4.     右击“条件组”,选择“新增 二元条件”;

5.     选择第一个字段为“ company.id

6.     右击第二个字段,将该字段类型替换为“用户属性”,并选择“ companyId ”用户属性;

7.     点击“保存”按钮。

用户分类

细粒度权限控制,核心问题就是针对不同用户或者不同类型用户,采取不同控制。 Metadmin 采用用户分类来描述不同用户类型。用户分类在整个业务系统,在各个权限设置时候都可以复用。

 

示例程序,我们要创建三个用户分类:总公司用户、分公司用户和营业部用户。

总公司用户的规则是:用户的机构级别等于 1

分公司用户的规则是:用户的机构级别等于 2

营业部用户的规则是:用户的机构级别等于 3

 

在权限设计器执行如下步骤,完成“总公司用户”用户分类定制:

1.    右击用户分类树形结构根节点,选择“新增 用户分类”;

2.    在弹出对话框里面,名称处输入“总公司用户”;

3.    在变量窗口,定义用户属性值变量 companyLevel ,将用户属性 companyLevel 输入该变量;

4.     在变量窗口,定义固定值变量 level ,其值等于 1

5.     在表达式定义窗口,右击根节点,选择“添加 Binary 表达式”;

6.     第一个变量选择 companyLevel ,操作符选择“ = ”,第二个变量选择 level

7.     点击“保存”按钮,定制完毕。

 

此时,可以在线测试该用户分类是否有效。点击“测试”标签页,选择用户进行测试。

 

下图示:(定制总公司用户)


 

下图示:(测试总公司用户分类,“柴其贵”测试结果)


 

下图示:(测试总公司用户分类,“李朵朵”测试结果)

 

 

通过,复制方式快速定制“分公司用户”和“营业部用户”两个用户分类。具体过程在此不做叙述。

细粒度权限设置

Metadmin 专业细粒度权限管理中间件,强大优势表现为:

1.     完全将权限逻辑从业务系统中分离出来,且通过界面,引导开发人员配置出权限逻辑;

2.    这些权限逻辑可以在线测试;

3.     采用分类机制,免去了业务系统里面 if else 判断,并且非常直观地在权限设计器展现出本系统的权限逻辑;

 

按照如下步骤完成最后一步定制过程,(整个过程看起来比较长,熟练后 3 分钟即可定义完毕):

1.     在“权限”分类栏,新建“查询员工”权限,输入相关信息;

2.     点击“查询员工”权限;

3.     点击“新增”图标,给查询授权,新增 3 条授权策略,如下图示。

4.     点击“保存”图标。

 

下图示:“查询员工”细粒度授权规则:


 

此时,可以点击“测试查询授权”标签页,选择用户进行测试。

与业务系统集成

一般情况下,开发者会采用 String 常量形式引用权限,而不是 int 型权限 id

可以点击权限分类栏上面的,“导出”图标,导出常量。将常量保存到业务系统常量类。

 

业务系统,不管是 jsp/servlet/manager 或者任意其他地方,需要调用该权限,获取当前用户能查询到的员工。调用 MetadminService.query( Privilege.QUERY_EMPLOYEE, user, null ) ,即可获得 user 能查询到的员工数据集合( java.util.Collection ),每个元素类型是 org.back.demo.Employee ,在设计 SQL 时输入的映射类。

Metadmin 提供了很多查询接口,还有分页、自定义查询和查询数据条数等,详情参加 javadoc http://www.metadmin.com/doc/javadoc/index.html

 

分享到:
评论

相关推荐

    java的细粒度权限和shiro权限校验 ssh

    在Java开发中,细粒度权限管理是一种重要的安全机制,它允许系统对用户访问资源进行精确控制,确保每个用户只能操作他们被授权的部分。Shiro是Apache组织提供的一款强大且易用的Java安全框架,它提供了身份认证、...

    基于RBAC模型的细粒度权限控制

    总之,基于RBAC的细粒度权限控制提供了一种有效且灵活的方式来管理Web应用的访问权限。它通过角色将用户和权限关联,减少了管理开销,增强了系统的安全性和适应性。随着企业需求的不断变化,RBAC模型已成为现代权限...

    Android平台下细粒度权限管理机制设计与实现.pdf

    总之,Android平台下的细粒度权限管理机制是应对日益复杂的安全挑战的重要手段,它通过增强用户对权限控制的感知和参与,提升了整个系统的安全性。未来,随着技术的发展,我们期待看到更多创新的权限管理策略,以更...

    Android平台细粒度权限管理系统的研究与实现.pdf

    知识点五:细粒度权限管理系统的实际应用 在实现这样的系统后,用户的隐私权限将得到更加细致的控制。比如,当一个应用程序请求访问用户的联系人列表时,用户可以选择仅允许访问特定联系人的信息,而不必授予对整个...

    电信设备-信息系统中细粒度权限管理方法.zip

    在信息系统中,细粒度权限管理(Fine-Grained Access Control, FGAC)是一种重要的安全策略,它允许系统管理员对用户访问资源的权限进行精确控制。这种方法与传统的粗粒度权限管理不同,后者通常只设置如“读取”、...

    基于SpringBoot+shiro实现数据库的细粒度动态权限管理系统

    基于SpringBoot+shiro实现数据库的细粒度动态权限管理系统 项目经过严格测试,确保可以运行!源码无需做任何更改! 基于SpringBoot+shiro实现数据库的细粒度动态权限管理系统 项目经过严格测试,确保可以运行!...

    细粒度用户评论情感分析数据集(2018-AI-challenger)

    共包含6大类20个细粒度要素的情感倾向.数据集分为训练、验证、测试A与测试B四部分。数据集中的评价对象按照粒度不同划分为两个层次,层次一为粗粒度的评价对象,例如评论文本中涉及的服务、位置等要素;层次二为细...

    AI Challenger 2018 细粒度用户评论情感分析数据集

    本次比赛我们提供了一个高质量的海量数据集,共包含6大类20个细粒度要素的情感倾向。参赛人员需根据标注的细粒度要素的情感倾向建立算法,对用户评论进行情感挖掘,组委将通过计算参赛者提交预测值和场景真实值之间...

    权限控制之粗粒度与细粒度概念及实现简单介绍

    细粒度权限管理是数据级别的权限管理,例如部门经理可以访问本部门的员工信息,用户只可以看到自己的菜单,大区经理只能查看本辖区的销售订单。 在实现粗粒度权限管理时,可以将权限管理的代码抽取出来在系统架构...

    细粒度位置追踪

    CP-ABE技术允许用户根据自己的权限访问加密数据,实现细粒度的访问控制。同时,通过转换键和代理重加密技术,大部分计算任务被转移到云服务器,减轻了移动设备的计算负担,减少了资源消耗。这意味着移动设备用户可以...

    AppBoxPro细粒度通用权限管理框架源码

    7. **细粒度权限控制**:AppBoxPro强调细粒度权限管理,意味着不仅控制到用户和角色级别,还可以深入到具体的功能和数据记录层面,确保了权限分配的灵活性和安全性。 8. **源码分析**:拥有AppBoxPro的源码,开发者...

    基于Spring Security的细粒度权限管理系统设计源码

    这是一个基于Spring Security框架的细粒度权限管理系统,使用Java语言开发,同时包含JavaScript、CSS、HTML等多种编程语言。该项目共包含2447个文件,其中主要文件类型包括JavaScript、PNG图片、CSS、HTML、JAR包、...

    细粒度情感方面情感数据集

    《细粒度情感方面情感数据集:深度剖析与应用》 在当今的信息化社会,情感分析已经成为数据分析领域的重要分支,特别是在互联网评论、社交媒体等大数据环境中,用户的情感倾向往往能反映出产品或服务的真实口碑。本...

    目标检测数据集:100类大型细粒度飞机图像检测数据集(yolo标注格式)

    项目包含:100类大型细粒度飞机图像检测数据集(yolo标注格式),数据保存按照文件夹保存,经测试,可直接用作目标检测数据集,无需额外处理。 用于细粒度图像检测任务,FGVC数据 【数据总大小】341 MB 【数据集...

    Ai—challenger数据集细粒度情感分析

    本次比赛我们提供了一个高质量的海量数据集,共包含6大类20个细粒度要素的情感倾向。参赛人员需根据标注的细粒度要素的情感倾向建立算法,对用户评论进行情感挖掘,组委将通过计算参赛者提交预测值和场景真实值之间...

    动态代理加注解实现细粒度的权限管理,具体到方法(前面上传的资源修改)

    细粒度权限管理是一种先进的策略,它允许管理员对用户访问系统资源的权限进行更精确的控制,而不是简单的“允许”或“禁止”。本资源通过动态代理和注解技术实现了一种细粒度的权限管理方案,具体到每个方法的级别,...

    动态代理加注解实现细粒度的权限管理,具体到方法

    在IT行业中,权限管理是系统安全的重要组成部分,尤其在企业级应用中,对用户操作进行细粒度控制显得尤为重要。动态代理与注解的结合,为实现这种细粒度的权限管理提供了一种灵活且高效的方法。下面我们将深入探讨这...

    【2018hit计算机系统安全】实验二:细粒度权限管理及实现root能力的分发和管理

    ### 细粒度权限管理与Root能力的分发和管理 #### 实验背景与目标 在计算机系统安全领域,权限管理是一项重要的技术措施,用于控制用户对于系统资源的访问级别。其中,细粒度权限管理和root能力的有效管理是确保...

Global site tag (gtag.js) - Google Analytics