资源预览内容
第1页 / 共62页
第2页 / 共62页
第3页 / 共62页
第4页 / 共62页
第5页 / 共62页
第6页 / 共62页
第7页 / 共62页
第8页 / 共62页
第9页 / 共62页
第10页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
密级: 无 硕 士 学 位 论 文 论文题目:基于角色访问控制(论文题目:基于角色访问控制(RBAC)的权限管理设计与实现)的权限管理设计与实现 作者姓名作者姓名 冯宏宇冯宏宇 指导教师指导教师 吴飞吴飞 副教授副教授 张志猛张志猛 博士博士 学科学科(专业专业) 软件工程软件工程 所在学院所在学院 软件学院软件学院 提交日期提交日期 2008-8-1 A Dissertation Submitted to Zhejiang University for the Degree of Master of Engineering TITLE: Design and realize of Role management based on RBAC Author: Feng Hongyu Supervisor: Professor Fei Wu 那么该错误页面仍然会被调用, 过滤器也 会工作。 浙江大学硕士学位论文 第 4 章 系统架构与权限认证的实现原理 23 4.2.3 过滤器的优点过滤器的优点 过滤器提供了几个重要好处。 首先,它以一种模块化的或可重用的方式封装公共的行为。你有 30 个不同 的 servlet 或 JSP 页面,需要压缩它们的内容以减少下载时间吗?没问题:构造一 个压缩过滤器,然后将它应用到 30 个资源上即可。 其次,利用它能够将高级访问决策与表现代码相分离。这对于 JSP 特别有价 值,其中一般希望将几乎整个页面集中在表现上,而不是集中在业务逻辑上。例 如,希望阻塞来自某些站点的访问而不用修改各页面(这些页面受到访问限制) 吗?没问题:建立一个访问限制过滤器并把它应用到想要限制访问的页面上即 可。 最后,过滤器使你能够对许多不同的资源进行批量性的更改。你有许多现存 资源,这些资源除了公司名要更改外其他的保持不变,能办到么?没问题:构造 一个串替换过滤器,只要合适就使用它。 因此采用过滤器来实现 ZONG OTA SYSTEM 的页面资源权限过滤,使得权限管 理系统与系统的耦合较低,代码具有良好的复用性和可移植性。 4.3 权限认证中的拦截器权限认证中的拦截器 ZONG OTA SYSTEM 采用 STRUTS2 框架来完成代码实现,因此仅仅拦截功能模 块对应的 JSP 页面,用户仍然可以通过.action 方法来绕过 JSP 操作接口而直接 操作功能模块的实现方法。因此系统中必须设置拦截器,来专门拦截此类的非法 操作,以确保系统有足够的健壮性和安全性。 4.3.1 拦截器介绍拦截器介绍 在本系统中,拦截器用于对.action 方法进行拦截,判断所登陆的用户是否有 访问使用该方法的权限。 Struts2 的拦截器和 Servlet 过滤器类似。在执行 Action 的 execute 方法之前, Struts2 会首先执行在 struts.xml 中引用的拦截器,在执行完所有引用的拦截器的 浙江大学硕士学位论文 第 4 章 系统架构与权限认证的实现原理 24 intercept 方法后,会执行 Action 的 execute 方法。 Struts2 拦截类实现 com.opensymphony.xwork2.interceptor.Interceptor 接口或 extends AbstractInterceptor 类,在 Interceptor 接口中有如下三个方法需要实现: void destroy(); void init(); String intercept(ActionInvocation invocation) throws Exception; 其中 intercept 方法是拦截器的核心方法,所有安装的拦截器都会调用这个方 法。 在 Struts2 中已经在 struts-default.xml 中预定义了一些自带的拦截器, 如 timer、 params 等。如果在标签中继承 struts-default,则当前 package 就会自动 拥有 struts-default.xml 中的所有配置。 4.3.2 实现原理实现原理 Struts 2 的拦截器实现相对简单。当请求到达 Struts 2 的 ServletDispatcher 时, Struts 2 会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个 列表(list) ,最后一个一个地调用列表中的拦截器,如图 4.4 所示。 浙江大学硕士学位论文 第 4 章 系统架构与权限认证的实现原理 25 图 4.4 拦截器流程图 4.3.3 拦截器与拦截器与 AOP 的关系的关系 拦截器体系是 Struts2 的一个重要组成部分,对于 Struts2 框架而言,可以将 其理解为一个空容器,正式大量的内建拦截器完成了该框架的大部分操作。 拦截器与 AOP(Aspect Orient Program,面向切面编程)是密切相关的,AOP 从程序运行角度来考虑程序的流程,取得业务处理过程的切面,在特定切面通过 系统自动插入特定的方法。AOP 面向的是程序运行中的各个步骤,以一种松耦合 的方式来组合业务处理的各个步骤。 在 AOP 编程方式中,有三个重要概念: 一、目标对象:包含被拦截方法的原始对象。 二、被插入的处理方法:定义在拦截器中,会在被拦截方法之前,之后执行 的方法。 浙江大学硕士学位论文 第 4 章 系统架构与权限认证的实现原理 26 三、代理对象:以目标对象为蓝本,由系统创建的新对象。 在上面三个概念中,被插入的处理方法不能独立存在,因为方法必须有一个 存在的载体这个载体就是拦截器,拦截器就是包含处理方法的特殊实例。 代理对象也称为 AOP 代理,就是由系统动态生成的一个对象,该对象将代 替目标对象来使用,AOP 代理包含了目标对象的全部方法。但 AOP 代理中的方 法与目标对象的方法存在差异:AOP 方法在特定切面插入拦截器方法,在处理之 间回调目标对象的方法,从而实现了在执行目标方法之前或者之后调用拦截器方 法,仿佛拦截器拦截了原有的目标方法一样。 代理对象所包含的方法与目标对象所包含的方法如图 4.5 所示。 图 4.5 AOP 与拦截器 可以看出, 被插入到 AOP 代理方法中的拦截器方法, 就是通过拦截器提供的, 可见:拦截器与 AOP 是紧密相关的。 事实上,Struts2 的拦截器机制来自于 WebWork 的拦截器机制,这种拦截器 机制就是基于 AOP 的思想,只是那时候没有明确提出 AOP 的概念而已。 浙江大学硕士学位论文 第 5 章 权限管理系统分析 27 第第5章 权限管理系统分析章 权限管理系统分析 5.1 系统需求分析系统需求分析 在 ZONG OTA SYSTEM 中,用户主要分为两部分:系统管理员与业务操作员。 系统管理员负责维护系统的日常运作,管理系统操作日志,管理系统用户,管理 各大类菜单等工作。而业务操作员则是 OTA 系统的各个业务功能模块的主要使用 者,如 10086 的接线服务员,移动大厅的业务接待员等,负责为用户办理各类业 务,如订制/退订手机业务,查询用户记录等操作。 由于可能存在不同业务操作员分管不同业务的情况,且系统管理员也可能需 要根据级别不同而拥有不同的权限定义,因此在系统设计时应考虑角色的可扩展 性,灵活的由系统管理员添加拥有合适权限的角色来分配给合适的用户对象。 权限管理系统在设计还应考虑权限的扩大的可能性。 如存在 A 角色和 B 角色, 都拥有添加用户分配角色的权限,但 A 角色同时拥有 B 角色不应该拥有的功能。 则拥有 B 角色的用户可能添加一个新用户,通过赋予该新用户 A 角色来达到游泳 A 角色功能的目的,这样拥有 B 角色的用户则可以方便的将本身的权限扩大,同 时拥有 A 角色的功能。这种情况是应该在系统设计时予以避免的。 由于 OTA 系统的更新速度很快,可能几个月就会有新的应用,因此在系统设 计时应考虑权限管理系统的可扩展性,可以方便的添加新的权限来分配给角色。 此外,权限管理系统还应具有可复用性和可移植性,方便系统的升级维护。 5.2 用户管理用户管理 用户管理是系统中用来对希望访问受 RBAC 系统控制的资源的主体进行管 理的一个工具。这部分的需求描述如下:添加一个新的用户;删除一个或多个用 户;向某个用户分配或撤销角色;保存用户角色分配信息;载入用户角色分配信 息; 记录相关日志。 在进行用户管理操作之前都要进行权限的验证。 在 ZONG OTA SYSTEM 中,初始定义有两种类型的用户: 1) 系统超级管理员:系统初始化的超级用户,只能通过添加数据库信息来添加 浙江大学硕士学位论文 第 5 章 权限管理系统分析 28 此类用户,系统中不提供增删改该类用户的接口。超级管理员可以执行系统所有 的业务流程功能,而且是拥有 ZONG OTA SYSTEM 的权限管理系统操作权限的 唯一角色,通过权限管理系统来对系统的角色,用户进行管理操作。该类用户主 要为运营商负责维护管理系统的人员。 2)系统一般操作员:由超级管理员添加,并赋予相应的角色。可以执行角色所 拥有的各类业务操作权限。该类用户为 ZONG OTA SYSTEM 的主要使用者,通 过角色所赋予的权限来执行系统的各类业务实现功能。如 10086 的接线服务,各 营业厅的前台业务办理员,通过系统为手机用户查询订制的服务日志,办理/退订 各类 SP 服务,根据需要对各类服务进行增删改的操作等。 5.3 角色及权限管理角色及权限管理 5.3.1 对角色的维护对角色的维护 要求实现一个可视化的角色编辑器,管理员能够在其中很直观的进行角色的 创建、修改、删除。 场景描述: 1) 校验用户是否有权限进行该操作。 2) 如果没有权限,则返回出错页面。 3) 如果有权限,则进入选择要角色维护的应用系统的页面。 4) 在角色维护的界面中显示已有的角色名,各种对角色操作。 5)角色操作包括新增角色,修改角色和删除角色。 6)执行需要执行的操作,返回操作结果信息。 5.3.2 对角色的授权对角色的授权 对角色的授权主要通过在新增和修改角色时,通过选择需要赋予的权限信息 来实现对角色的授权。 场景描述: 浙江大学硕士学位论文 第 5 章 权限管理系统分析 29 1) 校验用户是否有权限进行该操作。 2) 如果没有权限,则返回出错页面。 3) 如果有权限,则进入角色编辑的页面。 4)钩选需要赋予的权限信息,保存信息。 5)执行角色信息的保存,返回操作结果信息。 5.3.3 对用户的授权对用户的授权 对用户的授权通过在新增和修改用户信息时候,选择需要赋予用户的角色来 实现授权操作。 1) 校验用户是否有权限进行该操作。 2) 如果没有权限,则返回出错页面。 3) 如果有权限,则进入用户信息编辑的页面。 4)在下拉框中选择用户的角色,保存信息。 5)执行用户信息的保存,返回操作结果信息。 5.4 用户权限校验用户权限校验 过程描述: 1)用户登陆时将获取登陆用户的角色信息。 2)根据角色信息,从数据库中获得角色对应的权限信息。 3)将权限信息放入 session 中。 4)在访问资源通过将资源信息与 session 中的权限信息作对比,来校验该用户是 否有权限访问该资源。 5)如果用户有访问该资源的权限,则通过校验,转到需要访问的资源。 6)如果用户没有访问该资源的权限,则跳转到出错页面,给出提示信息。 浙江大学硕士学位论文
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号