Ralasafe Demo 运行和使用说明
文档版本: 1.0v
简介
Ralasafe 访问控制(数据级权限管理)中间件,是MIT协议开源免费软件产品。它使用图形化方式处理各种数据级权限管理问题,包括数据库行列级、字段内容级权限问题;它还能处理登录控制、功能级权限控制和URL权限认证。
准备工作
本文所使用的开发环境为 JDK1.7 、 Tomcat6.0, 、 MySQL Server 5.5 、 Eclipse 3.3 以及 Ralasafe1.2 。
Ralasafe安装
本文将基于 Ralasafe 官方 Ralasafe 1.2 的 Demo 进行介绍 , 请在阅读下文之前 , 下载官方 Demo 并完成部署,官方Demo 的下载地址: http://www.ralasafe.cn/download/。安装说明见解压后的下载文件。
Ralasafe web 控制端的使用
Web控制端简介
进入 RalasafeWeb 控制端:http://localhost:8080/demo/ralasafe/designer.rls 。 为了更好的理解 Ralasafe 控制端功能,将其归为四大模块: 用户管理、角色管理、权限管理以及策略管理。
用户管理模块对应的是左上角的 “ 用户管理员 ” 一栏 ,该模块用于给业务系统的用户分配角色。
角色管理模块对应右上角的 “ 角色管理员 ” 一栏 , 该模块于创建角色以及给角色设置权限 , 此处需要注意 , 在该模块中创建的用户角色将会在 “ 策略开发人员 ” 一栏中的“用户分类 ”中保存一份。
权限管理模块对应左下角的 “ 架构师 ” 一栏 , 该模块主要用于将策略人员制定好的策略汇集成各类权限控制,另外还附带了用户元数据的导入功能。
策略管理模块对应右下角的 “ 策略开发人员 ” 一栏 , 是 Ralasafe 权限控制的核心基础模块,策略人员可以在此处定制各种级别的权限策略。
上图中红色虚线框所包围的为核心功能模块,策略开发人员负责的是整个权限制定的基础工作,在规划好权限控制方案之后,就需要从此处开始整个权限控制的创建过程。
权限设计简介
Demo 部署成功后,可以在“策略开发人员”→“用户分类”中浏览默认的用户分类,按组织机构分类为:分公司用户、总公司用户、营业部用户。
假设,随着公司业务的扩展,为了满足管理的需要,需建立一个“区域用户”,用于对 某个区域分公司员工进行管理,下面以实现一个区域用户具备查询区域内分公司员工为例 , 实现一个权限控制过程。
详细的需求说明:
1 .需要建立一个区域经理的岗位;
2 .区域经理必须由总部销售人员担当;
3 .区域经理只能查询其所在区域内的分公司员工。
将需求转化为概要设计:
1 .在角色模块中创建相应的区域管理员角色;
2 .在策略模块中创建相应的区域用户的分类;
3 .在策略模块中创建相应的区域用户查询;
4 .在权限模块中创建区域管理员权限,将相应的区域用户查询挂接到该权限中。
进一步细化概要设计,假设以创建上海合肥区域管理员角色为例:
1 .在策略管理模块中创建一个查询,只能查找上海、合肥分公司的员工;
2 .在策略管理模块中创建一个用户分类,命名为“上海合肥区域用户 ”,并创建用户分类策略;
3 .在权限管理模块中创建一个权限,命名为“上海合肥员工”;
4 .在角色管理模块中创建一个角色,命名为“上海合肥区域管理员”。 接着开始一步步的实现这一权限创建过程。
实现权限控制
1.创建策略
创建上海、合肥分公司的员工查询
查询语句需要包含有用户表、公司表以及部门表,其中,上海、合肥的分公司 id 分别是 2 和 3 。可以通过查询 company 表获得分公司 id。(注:此表位于zh_mydemo的Schema下)
下面开始创建员工查询:点击控制台右下角“策略开发人员”中的“查询”菜单项,在“查询员工”组中创建一个“查询上海合肥分公司员工”的查询项。
点击OK,创建成功。
点击刚创建的查询项,接着点击右边的“编辑策略”,进入策略制定界面。在映射类中 输入:org.ralasafe.demo.Employee,然后分别双击左侧“zh_mydemo”下的 demouser、company、 department,将其添加到界面右侧中。然后点击“映射类”右侧的“OK”按钮。请务必记得点击“OK”按钮,否则在勾选表的时候,是不能建立类与字段的映射关系。
对于 demouser 表的字段,可以点击表头上方的“选择所有”选择全部字段。
同样的,勾选 company以及 department 表的 name 字段。
由于 company、department 表的 name 字段还没有与 Employee 类建立映射关系,因此我 们还需要为其建立相应的映射关系。
分别点击 company、department 表的 name 字段右侧的编辑图标,在弹出的对话框中选择两个表的 name 多对应
Employee 类中的字段。company 表的 name 对应Employee 类中 的 companyName,department表的 name 对应 Employee 类中的 departmentName。
操作完成后点击页面上方的“保存”链接,然后点击“测试”看看效果。如果一切顺利,在点击“运行”按钮后,会看到所有员工列表。接着,我们还需要创建 Where 查询条件,用于过滤除上海、合肥分公司以外的所有员工。在测试页面中点击“继续编辑”,回到刚才 的编辑界面。
点击编辑界面左上角的“Where”标签页,切换到 Where 条件创建页面。首先新增两个二元表达式,让 demouser[t0].companyId 列与 company[t1].id 列对应,同样,让demouser[t0].departmentId 列与dempartment[t2].id列对应。这一操作的目的是为了在demouser、company、department 表之间建立关联关系。
为了让查询区分上海分公司、合肥分公司用户,还需要增加一个条件。点击“Root expression group(AND)”节点→“新增条件组 ”,新增一个“OR”条件组。在“Expression group(OR)”条件组中新增两个二元表达式,分别让 demouser[t0].companyId 等于 2 、3 (2代表上海分公司、3 代表合肥分公司),具体操作为,在新增二元表达式的对话框中,需要将一列替换为固定值,如下图所示:
完整的 Where 条件如下图所示:
最后,别忘了点击界面上方的“保存”链接,然后点击“测试”链接看看效果吧。
运行结果:
至此,我们已经完成了整个查询的建立过程。
创建上海合肥区域用户
在需求中描述,区域管理员角色只能由总部的销售部人员担任,因此,用户分类中,需 要建立一个策略,限制该分类用户必须是总部员工,并且隶属于销售部。
同样的,需要知道销售部的 ID 号,可以通过在 MySQL 中查询 department 表获得。
而判断用户是否为总部用户,可以通过用户的 companyLevel 字段来判断,仅 当 companyLevel 等于 1 时为总部用户。关于 companyLevel 值的定义请查看 company 表。
下面介绍用户分类的创建过程。
在控制台右下角中点击“用户分类”→“按组织机构分类”,在该节点下创建一个“上海合肥区域用户”分类,然后选中该用户分类,点击右侧的“编辑策略”链接,在策略界面 中,通过点击表格“操作”列右边的添加按钮,添加
4 行变量:userCompanyLevel、OfficeCompanyLevel、OfficeDepartment、userDepartment.
在添加变量时,请按照上图添加对应的变量以及变量类型。然后接着点击“表达式”页 面标签新增两个二元表达式。
之前定义变量的用途,其实就是为了通过表达式定义, 在变量和用户类字段中建立一种约束关系 。此处表达式的含义是,用户必须是隶属于总部以及总部的销售部门。
当查询和用户分类创建好之后,实际上权限创建过程已经基本完成,接下来就是要在查询及用户分类中创建一种关联关系,只有完成这一步,才能实现真正意义上的权限控制。
2.创建权限控制
创建权限相对简单。点击控制台左下角的“权限”菜单项进入权限创建界面,点击菜单树根节点,创建一个名称为“区域用户管理”的组,然后在组中创建一个名称为“查询上海合肥员工”的权限,如下图所示。
创建权限时,必须给权限指定一个常量名称(QUERY_SH_EMPLOYEE),该常量名称可以自由定义,最好能够直接 表现权限的含义,该常量将在以后的业务系统开发中用到。其他输入项保持默认即可。创建好权限之后,在左侧菜单树中选中该菜单项,点击右侧的“编辑策略”链接,进入权限策略创建界面。选择权限类型为查询权限,点击OK。
权限策略的创建比较简单,只需点击表格头“操作”右侧的添加按钮,选择相应的选 项即可,如下图所示。
添加完成后,权限列表为:
创建好之后,点击“保存”链接,然后点“测试”链接看看效果吧。下面给出总公司用 户列表,可根据这些用户所属部门验证权限控制是否正确。
在刚开始创建好权限的时候,所有测试都是失败的,这是怎么回事呢?因为在测试之前,我们还有两步工作需要完成,第一步是创建角色,第二步的给用户授权。
3.创建角色
创建角色过程非常简单,只需要进入“角色管理员”→“角色”界面,点击 添加按钮 创建一个“上海合肥区域管理员”角色,如下图所示:
添加成功后:
角色创建好之后,还需要给该角色指派权限。点击“上海合肥区域管理员”角色右侧的 分配权限按钮。在列出的权限树中勾选 “查询上海合肥员工”权限,然后点击“OK”按
钮保存。这样,我们就完成了将该权限指派给 “上海合肥区域管理员”角色,如下图所示。
这里需要特别说明的是,当创建角色之后,在 “策略开发人员”一栏中的“用户分类” 的“角色”菜单项中会看到对应的角色。
4.给用户授权
在控制台中点击左上角的“给用户分配角色”,分别给刘灿和王胜利授予“上海合肥区域管理员”角色。然后回到权限界面中重新对“查询上海合肥员工”权限进行测试。
通过测试后我们发现,刘灿通过了测试,但是王胜利没有通过,其实这正是我们想要的结果,因为王胜利是分公司用户,不属于总部,不在可授权范围内。
下面给出测试结果图:
参考资料:
Ralasafe 官方网站: http://www.ralasafe.cn
Ralasafe 官方论坛: http://www.ralasafe.cn/rs-forum/
Ralasafe 官方 Wiki:http://www.ralasafe.cn/wiki/doku.php?id=ralasafe
分享到:
相关推荐
Ralasafe 访问控制(数据级权限管理)中间件,是MIT协议开源免费软件产品。它使用图形化方式处理各种数据级权限管理问题,包括数据库行列级、字段内容级权限问题;它还能处理登录控制、功能...3.ralasafe_demo使用文档
总结,Ralasafe1.2源码和Demo为开发者提供了一个全面的权限管理系统实现,从理论到实践,帮助开发者理解权限管理的复杂性并掌握ralasafe的使用方法。通过深入学习和实践,开发者可以构建更加安全、可控的应用系统。
ralasafe+ralasafe_demo
接下来,你可以在Eclipse中运行该项目,通过浏览器访问Ralasafe的管理界面,进行用户、角色、权限的设置和管理。此外,Ralasafe还提供了丰富的API和文档,可以帮助你更好地集成到自己的应用程序中,实现精细的权限...
在RalaSafe中,这些文件可能用于配置中间件的运行环境和应用的扩展功能。 "xml"目录很可能包含了RalaSafe的各种配置文件,如权限策略、用户角色定义、安全规则等。XML因其结构化和可读性强的特点,常被用于存储和...
在**ralasafedemo**中,我们可能会发现以下关键组件和步骤: 1. **安装与配置**:首先,需要下载并安装RalaSafe的相关依赖,包括数据库驱动、核心库和示例代码。配置文件中通常会定义数据库连接信息、策略存储方式...
`Ralasafepdf实践.pdf`应该是Ralasafe的官方使用手册,涵盖安装、配置、策略管理、用户角色设置等步骤。手册将指导你如何快速搭建环境,并进行权限策略的定制。 **5. 数据库集成** `mysql数据库`文件可能包含用于...
### Ralasafe 1.2 升级版说明文档 #### 一、概述 Ralasafe是一款专注于数据权限管理的开源软件,旨在为开发者提供简单易用且强大的权限控制解决方案...希望本说明文档能帮助大家更好地理解和使用ralasafe 1.2升级版。
Ralasafe 访问控制(数据级权限管理)中间件,是MIT协议开源免费软件产品。它使用图形化方式处理各种数据级权限管理问题,包括数据库行列级、字段内容级权限问题;它还能处理登录控制、功能级权限控制和URL权限认证...
- **文档**:详细的用户手册和开发者指南,帮助理解ralasafe的工作原理和使用方法。 - **示例**:提供示例项目和配置文件,让开发者能够快速上手。 - **数据库脚本**:用于初始化`ralasafe`相关的数据库表结构和...
Ralasafe中文参考手册详细介绍了安装、配置、使用和开发等方面的内容,便于用户快速上手。社区论坛和邮件列表为用户提供交流平台,解答疑问和分享经验。 总结来说,Ralasafe中文参考手册是学习和使用Ralasafe的重要...
1. **安装与配置**:首先,需要将ralasafe的jar包部署到Tomcat的lib目录下,然后配置相应的Context XML文件,指定RalaSafe的配置文件位置。 2. **数据库准备**:在数据库中创建RalaSafe所需的表结构,导入初始数据...
1. **license.txt**: 这通常包含了RalaSafe的许可协议,详细规定了使用、分发和修改RalaSafe的法律条款。 2. **CHANGES.TXT**: 这个文件记录了RalaSafe的版本变更历史,包括新功能的添加、已知问题的修复以及性能...
2. `license.txt`:包含软件的许可协议,详细说明了软件的使用和分发条件。 3. `CHANGES.TXT`:记录了软件版本的更新和变更历史,有助于了解各个版本之间的差异和改进。 4. `build.xml`:Ant构建文件,用于自动化...
RALASAFE的高级案例分析部分讨论了需求变更和对策,提供了高级案例分析1和高级案例分析2,说明了初始需求、需求变更、需求再变更的应对策略,并详细阐述了安全策略命中机制,包括查询权限命中机制和决策权限命中机制...
4. **数据库集成**:`ralasafe1.2`与`MySQL`数据库配合使用,用于存储用户信息、角色、权限策略等数据。这要求开发者熟悉SQL和`MySQL`数据库的管理。 5. **集成开发环境(IDE)支持**:`myeclipse10.6`是用于开发`...
1. **分层设计**:ralasafe 将权限控制分为四个层次:用户角色关联、操作权限定义、策略执行和运行时检查。这种设计使得权限管理更加模块化,易于理解和维护。 2. **动态权限**:ralasafe 支持动态权限配置,允许在...
在`ralasafe学习.txt`文件中,可能会详细记录了学习Ralasafe的过程,包括如何安装、配置、创建角色和权限、集成到Java Web项目中等步骤。这个文件将帮助你快速理解和掌握Ralasafe的使用方法。 **实战应用** 在实际...