




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件系统中权限管理的设计与实现方案 周亮 2151002024权限管理必要性 应用广泛:权限管理的概念几乎在每件事情上都有体现,比如门卫具有开门锁门的权限,老师具有布置作业和评分的权限,学生具有借书上课的权限等等。软件同样必要:在软件系统中实现权限管理也是必须的,应该限制员工只能执行相应的操作。(教务系统中的学生和老师的权限,图书管理系统中的读者和管理员) 问题:问题:在软件系统中如何实现权限管理的?本次讲解目标 目标:让你在设计任何软件时都不再为权限管理问题而发愁。 讲解案例:购物商城系统中权限管理为例来进行分析和设计。系统需求描述 一个购物网站有以下几个功能模块。想让系统的不同管理人员登陆
2、系统后只能操作分配给自己的功能。 关键:关键:权限问题,不同部门的员工赋予不同的权限。用户管理模块部门员工管理模块订单管理模块查看统计用户员工管理部门管理查看订单设置订单发货状态产品管理模块产品类别产品需求描述功能处理流程实现思路 人事管理员工添加新的部门。 此处:人事管理员工要拥有添加部门权限,执行添加部门功能需要添加权限,拦截器拦截确认。1.让用户拥有权限让用户拥有权限2.标明访问方法所需标明访问方法所需权限权限3.权限拦截,获得用权限拦截,获得用户具有的权限,获取户具有的权限,获取被访问方法需要的权被访问方法需要的权限,两者比较,得出限,两者比较,得出是否具有权限是否具有权限实现步骤分析
3、 1.权限描述,系统中有很多功能,为了实现对每个功能的操作都有权限设置,所以要对系统的所有功能都进行权限描述。 2.角色定义,权限最终会分配给管理人员,为了方便管理,可以设置角色,可以为角色添加多种权限,然后再将角色设置给管理员工,那么员工就具有相应的权限了。 比如:系统中可以设置“人事管理员”、“采购管理员”、“发货管理员”等角色。 3.为员工设置角色,可以为员工设置不同的角色。老板可以拥有所有角色,人事部员工只应该设置“人事管理员角色” 4.权限拦截,角色分配好后,当员工登陆系统后进行某些操作之前应该先判断该员工是否拥有相应的操作权限,如果拥有则允许执行否则进行相应的提示。权限定义功能实现
4、角色定义给员工分配角色权限拦截权限定义 目的:描述系统中的所有功能。 数据库实现:建立一个权限表SystemPrivilege 表中有如下3个属性: module;/权限所属模块,department privailege; /权限,比如delete name;/权限名称,比如“部门删除” 描述权限案例:部门管理模块下的部门删除权限. (department,delete,“部门删除”)SystemPrivilege数据表中数据存储moduleprivailegenamedepartment delete 部门删除 department add部门添加department modify部门修改
5、employeedelete 员工删除权限数据存储时机 系统的所有权限是在系统设计完成后就会明确的,所以权限的所有数据应该系统初始化后就应该立即完成。通过浏览器访问来初始化权限数据 访问:http:/localhost:8080/shop/systeme/init 来初始化权限数据。 为了防止多次执行初始化操作,所以在执行添加权限数据时要判断数据是否已经存在。返回角色定义 目的:拥有一类权限,方便分配给管理人员,免除一个一个分配权限的麻烦。 数据库实现:建立一个角色表,和“角色-权限关系表” 角色表中含有2个属性: groupid; /角色id name; /角色名称 返回角色数据添加时机 前
6、提:角色数据的添加要在权限数据已添加的基础上才可以进行。 时机:可以根据业务需要后期添加不同的角色,因为角色是使用者定义的,开发者在开发阶段不可能想到所有的角色,使用者应该在使用过程中根据需要添加不同的角色。 比如:图书馆管理系统中,图书的管理和读者的管理可以设置成一个角色“图书管理员”,有一天馆长觉得不放心又重新添加一个角色“读者管理员”。并且让图馆只负责图书管理,读馆负责读者管理。给员工分配角色 目的:让该员工具有使用某些功能的权限,从而进行相应的工作。 数据库实现:建立一个“员工角色关系表”存放员工和角色之间的关系。返回给员工分配角色时机 前提:要分配的角色要先存在 时机:根据需求定,当
7、人事部门新招一个员工时,就可以为该员工分配“人事管理员角色”,从而让该员工可以进入网站进行相应的管理操作。权限拦截 目的:权限识别,防止越权操作。 1.粗粒度:通过路径拦截,根据用户权限限制用户访问的路径。比如后台的所有管理界面只有管理员登录后才可以访问。 2.细粒度:用户查看到某个具体页面后,对页面上的一些功能进行拦截,根据用户权限限制用户只可以操作哪些按钮功能。比如添加部门功能只有具有权限才能执行。权限拦截粗粒度细粒度粗粒度拦截 关键技术:Filter 实现: 1.约定:为了进行拦截,所以我们的一些页面路径的设置应该遵循一定的规则约定。比如:凡是管理员要访问的页面的访问路径都要设置在con
8、trol关键字后面。http:/localhost/shop/control/employee.html 员工管理界面http:/localhost/shop/control/department.html 部门管理界面 2.拦截:在javaWeb中你可以编写Filter来过滤特定路径下所有访问。比如:过滤http:/localhost/shop/control/下的所有请求,这样凡是以http:/localhost/shop/control/开头的请求都会被Filter拦截到。细粒度拦截 关键技术:AOP(面向切面编程) 实现: 1.标明被拦截的功能需要哪些权限(注解或者数据表)。 Perm
9、ission(module=department, privilege=view) public ActionForward execute() 表明访问execute需要department的view权限。 2.通过Aop拦截到用户使用了某个功能,并调用通知。 3.在通知中判断用户是否具有使用该功能的权限,如果有则执行该功能,没有则给出提示。返回Aop简介 系统中存在交叉业务,一个交叉业务就是要切入到系统中的一个方面,如下所示: 安全 事务 日志StudentService -|-|-|-CourseService -|-|-|-MiscService -|-|-|- 用具体的程序代码描述交叉业务:method1 method2 method3 -切面. . .-切面 交叉业务的编程问题即为面向方面的编程(Aspect oriented program ,简称AOP),AOP的目标就是要使交叉业
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 驾驶实操模拟考试题及答案
- 在校生实习劳务协议5篇
- 2025江苏连云港市赣榆区教育局所属学校招聘新教师69人模拟试卷附答案详解(突破训练)
- 公司信用体系建设工作承诺函(3篇)
- 场景化任务管理工具与进度协同更新
- 钢琴老师的考试题及答案
- 2025年幼儿健康考试试题及答案
- 达州统考真题数学及答案
- 菏泽教资考试试题及答案
- 2025年北京省考行测真题及答案
- 中药涂药技术
- . 钢管桩施工质量监理细则
- 考勤表-智能考勤表
- 感染控制和抗菌药物临床应用管理专家讲座
- GB/T 11379-1989金属覆盖层工程用铬电镀层
- 新概念英语第二册全册教案
- 影子银行与资产证券化课件
- 主要造岩矿物的鉴定特征概述111课件
- 艾默生软件使用说明书
- 《中石油专业技术人员晋升职称专业日语选读》译文
- 《钢筋焊接及验收规程》JGJ18
评论
0/150
提交评论