文档库 最新最全的文档下载
当前位置:文档库 › 基于shiro的权限管理系统设计和实现_毕业设计

基于shiro的权限管理系统设计和实现_毕业设计

基于shiro的权限管理系统设计和实现_毕业设计
基于shiro的权限管理系统设计和实现_毕业设计

基于shiro的权限管理系统设计和实现

摘要

随着经济社会的发展和信息科学技术的不断进步,信息的处理量越来越大,也越来越繁杂,于是计算机技术被广泛的应用到社会的各个领域之中。但随着最近一些比较严重的信息系统泄密事件的发生,使用者意识到了信息系统安全的重要性,如何保护信息的安全成为使用者最关心的问题。这里我们从系统设计实现的角度进行处理,在用户对系统数据进行访问前,先通过基于RBAC的权限管理系统的验证,确定用户拥有的角色,根据用户角色的权限再向用户展示数据信息,从而实现保护系统信息的目的。

该系统依托现在流行的JSP语言,通过MySQL数据库的数据处理,开发出通用权限管理系统来对用户身份权限信息进行验证。这套系统具有权限分配简单、扩展性好的优点,并且支持岗位、权限多变的各种需求。作为信息系统的附属系统,该系统很好的实现了用户与页面功能数据的整合和分离,还增添了信息管理等附带功能。实践证明,基于RBAC的权限管理系统是最方便和快捷的安全管理控制方法。

关键词:网络信息安全;RBAC;权限管理系统;角色

ABSTRACT

As the development of the social economy and the technology and science, the information needed to treat is bigger and bigger, and become increasingly complex, so computer technology is widely applied to every field of society. But along with some serious information system leaks events happened one after another, people have realized the importance of network security, thus how to protect information security data from violation has become that users care most about. Here, a detailed analysis of the design from the viewpoint of the system's realization is given, users first must log in to access the privilege management system, for each user group one or more users are selected and their roles and authority s are identified, and then they can view the client list and details about each client, so as to achieve the goal of protection system information.

The authority management system is based on fashionable JSP language and MySQL database technology to authenticate user identity authorization information. Authority administrative system that adopts this method has stronger commonness and practicability, which can meet demand of authority management in general application system. As the subsidiary system of information system, the system is good enough to achieve the integration and separation between the user and the function. Practices show that an authority management system based on RBAC is the most convenient and efficient safety management control.

Key words:Network information security;Role-Based Access Control;Authority management system;Role

目录

摘要 ............................................................... I ABSTRACT .............................................................. II 1 前言 .. (1)

1.1 项目背景 (1)

1.2 目的及意义 (1)

1.3 B/S开发模式的优点 (2)

2 需求分析 (3)

2.1 系统概述 (3)

2.2 系统功能需求分析 (3)

2.2.1 用户管理 (3)

2.2.2 角色管理 (4)

2.2.3 功能管理 (4)

2.3 UML 建模 (4)

2.3.1 管理员用户的用例关系图 (4)

2.3.2 一般用户的用例关系图 (5)

2.4 系统性能分析 (6)

2.4.1 安全性需求分析 (6)

2.4.2 稳定性需求分析 (7)

3 概要设计 (8)

3.1 总体设计 (8)

3.2.1 模块划分 (8)

3.2.2 模块设计 (9)

3.3 模块设计 (11)

3.3.1权限管理模块 (11)

3.3.2 用户密码修改模块 (13)

3.3.3 用户账户管理模块 (14)

3.4 数据结构设计 (16)

3.4.1 用户信息表 (16)

3.4.2 角色信息表 (17)

3.4.3 功能菜单表 (17)

3.4.4 角色菜单表 (17)

4设计与实现 (18)

4.2 系统架构 (18)

4.3访问控制设计 (19)

5系统测试 (20)

5.1 测试目的 (20)

5.2 测试内容 (20)

5.2.1 功能测试 (20)

5.2.2 性能测试 (20)

5.3 测试用例 (20)

5.4测试结果分析 (24)

6总结与展望 (25)

结论 (26)

参考文献 (27)

致谢 (29)

1 前言

随着计算机和网络信息技术的高速发展,网络信息的安全成为越来越大的问题,而访问控制技术是实现系统信息安全的重要手段。随着现在系统普遍面向用户数大,处理数据量大,功能日益复杂的现状,如果还继续使用ABAC的访问控制模式将会使权限管理的实现变的相当繁琐和复杂。于是人们设计了多种用来控制用户权限的系统模型,来确保敏感的数据信息只有拥有相应权限的人才可能看得到。通过实践,基于角色的权限控制(Role—Based Access Control,RBAC)模型由于其简单方便易于维护的特点得到了越来越广泛的认同,被广泛应用在各种网络信息系统和大型MIS系统中。

1.1 项目背景

在20世纪90年代发展并日臻完善的基于角色的访问控制(RBAC,Role-Based Access Control)是一种管理和增强系统安全性的技术。这种访问控制通过引入“角色”这一中介量,从而实现了用户和访问许可的逻辑分离,极大地方便了权限管理。

JSP技术是现在流行的网络系统开发技术,因其具有跨平台的适应能力而被众多设计者所采用。当Web服务器接收到访问JSP网页的请求时,首先执行网页的程序段,然后将执行结果返回给客户。Java程序段可以对数据库数据进行操作,也可以返回或者前进到另外一个界面。JSP与Java Servlet相似,所有数据处理均在服务器端进行,用户只需要用浏览器接收服务器反馈的信息即可。JSP技术的基础是Java Servlet,应用程序的开发需要同时拥有Java Servlet和JSP。JSP 继承了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠的所有特点。JSP可用等式表示为:HTML+Java=JSP。

1.2 目的及意义

随着信息网络技术的在社会各个领域的广泛应用,如何防止敏感数据信息的泄露成为系统使用者最关心的问题。同时,为了保证系统的安全稳定的运行,使员工只能对自己拥有权限的数据进行操作和处理,其他的都不能查看以及操作,就需要在系统中根据每个人的职能为其分配相应的权限。基于RABC的权限管理平台因其简单、方便快捷的权限处理机制,很好的解决了数据泄密以及功能权限的问题。

通过建立权限管理系统,可以保证每个员工只能根据自己的本职工作对系统数据进行限制性操作,防止信息泄露篡改问题的发生,为使系统更好的方便日常

工作提供有效的安全保障。同时因为有了授权机制,也可以防范无关人员对服务器进行非法操作,保证系统安全稳定的运行。

针对基于RABC的权限管理系统的设计理念,我从实际需求和能力出发,设计并实现了这个权限管理系统,它具有自适应性强、通用性好的特点,可以很好的减少权限管理系统的维护工作,提高权限管理系统的通用性,并且能够避免权限管理系统的重复开发问题。系统着重关注了用户与访问许可实现逻辑分离的过程,可以作为大家认识了解和学习RBAC技术的一个范例。

1.3 B/S开发模式的优点

B/S结构就是只安装维护服务器,将系统布置到服务器中,客户端采用浏览器来运行软件,即浏览器/服务器结构。相对于C/S结构,B/S有很明显优点和长处。

(1)维护工作量大大减少。如果系统需要进行维护,B/S结构只需要维护部署在服务器上的程序即可,而C/S结构系统维护时,除需要维护服务器上的程序外,还需要额外升级客户端程序。

(2)B/S结构开发的程序具有很强的适应性。B/S结构实行的是3层数据处理,用户只是通过浏览器接受经过服务器计算完成之后的数据,及时用户电脑配置很低也能胜任。但是C/S结构实行的是2层数据处理,数据还需要到用户客户端进行计算处理,这增加了客户端的软硬件负担。

(3)B/S结构开发的系统数据一致性好。B/S结构系统数据实行集中存在,不同用户查看统一信息是完全一致的。C/S结构系统由于数据存放与客户端中,数据会有一定的不一致现象出现。

(4)B/S结构系统数据具有很好的实时性。C/S结构系统看到的数据都是客户端上传到服务器的数据,B/S系统因为其数据就在服务器中,所以B/S系统看到的都是系统的实时数据,能为决策者提供实时准确的参考。

(5)B/S结构系统具有很好的数据安全性。C/S结构软件由于其数据分布的特性,因客户端本身或者外部环境而发生的数据损毁时常发生,使之保证数据安全的性能大大降低。而B/S结构的系统由于其数据直接存放于服务器中,不存在与客户端进行数据交换的行为,从而会极大的提高数据的安全性。

2 需求分析

2.1 系统概述

随着计算机和网络信息技术不断发展,网络信息技术在各个领域的成功的应用结果让单位信息化的需求越来越强,使得单位越来越注重自己的信息化建设,网络办公及单位内部的信息处理已经成为众多单位尤其是网络公司的工作模式。在单位进行信息化建设过程中,单位的敏感信息安全成为了其中的一个重要问题,因此,信息系统的安全成为单位信息化过程中所要处理解决的首要问题之一。权限管理系统的设计目的在于利用计算机编程技术,构建一个依附于信息系统的安全可靠的权限管理平台,保证单位敏感信息的不被不适宜的人获取、篡改以及删除,保护数据的保密性、一致性、完整性。

该系统应有如下几大功能模块:用户信息管理,角色信息管理,功能基本信息管理,角色分配管理和权限分配管理。系统首先建立管理员用户和一般用户信息,通过对用户进行角色分配,再通过对角色进行权限的分配,来实现系统对用户的权限控制。现在多数单位的信息管理系统的安全授权比较复杂,包含众多的业务实体和事物处理应用,每个部门中同一职位的员工因职能范围或地域的不同而具有的权限也不尽相同,有时甚至对同一个用户,或许由于在不同的业务中,也会有不同的权限,这种现象反映在信息系统中就是个体的权限和具体资源的对应关系,为了使得权限系统更加灵活、便捷,本设计采用RBAC 授权模型,可以用来有效减轻系统权限的管理难度和操作的复杂度。根据信息系统的需要,权限系统中设置了超级管理员,通过超级管理员来进入权限管理系统,对其余的普通的用户进行赋权。

2.2 系统功能需求分析

基于一般信息系统对权限管理的要求,我们采用了基于角色的访问控制模型进行设计。系统按照RBAC模型可为功能管理、角色管理、用户管理等三大模块。

2.2.1 用户管理

用户信息是权限系统的基础信息,是系统控制的主体资源,用户直接关联角色信息,如果没有用户或者角色信息,系统就会拒绝用户的登录及其对系统信息的访问操作,用户的信息管理是权限系统首先要处理的问题。用户管理的需满足如下需求:

(1)可以添加新的用户;

(2)能查看所有用户信息;

(3)删除已有用户信息;

(4)查看用户所具有的角色及权限;

(5)修改用户信息;

(6)对用户赋予相应角色。

2.2.2 角色管理

角色管理是RBAC系统中的重要一部分,它是用户的和权限之间的纽带,一个角色会有多个用户,角色对应一定的功能权限菜单,即具体的权限。当用户拥有正确的角色,并且角色设置了正确的权限,用户才能对系统进行访问和操作。用户角色管理的需求描述如下:

(1)可以查看系统中拥有的所有角色信息;

(2)可查看具体某一角色的名称、描述以及角色权限;

(3)可修改、删除角色信息;

(4)可修改角色的权限分配。

2.2.3 功能管理

该模块里是设置并定义权限管理系统所管理系统的菜单信息(即功能权限信息),将系统的功能菜单路径信息输入到权限系统中,通过对角色赋予功能菜单的权限实现用户权限管理的目的。

2.3 UML 建模

在权限管理系统中用户有两类:一种是管理员用户,另一种就是一般用户。由于本权限管理系统设计简单,这时里只给用户功能用例图。

2.3.1 管理员用户的用例关系图

权限系统管理员用户是权限系统中拥有最高权限的用户,它的主要的操作就是对系统中的用户信息、角色信息及功能信息进行管理,管理员用户一般不会参与到信息系统的具体业务中,它是一个只对应权限系统的特殊用户。权限系统管理员具体的操作权限有:增加用户、查询用户、删除用户、为用户授予角色、删除用户角色、查看用户角色、查看用户权限、增加角色、删除角色、查看角色、给角色授予权限和查看角色权限等功能。管理员对一般用户进行了相应的权限设置,一般用户才能登录到信息系统中进行数据的查看和处理。

图2.1 管理员用户的用例关系图

2.3.2 一般用户的用例关系图

一般用户的权限比较管理员要小的多,最主要的一般是角色的不同,管理员拥有系统管理角色,一般用户往往是其他的角色,具体权限需要管理对其进行设定。在本系统中设定只有超级管理员用户可以登录权限系统,一般用户会提示没有权限。假设一般用户能登录权限系统,那么其在权限管理系统中的权限一般只

能查看其自己的一些用户信息,角色信息,已经权限信息等,不能操作更改信息。

图2.2 一般用户的用例关系图

2.4 系统性能分析

2.4.1 安全性需求分析

构建一个成功的权限管理系统首先应该了解需要控制的系统的所有功能菜单信息,只有完整并且准确的获取到菜单功能信息,才能对角色赋予相应的权限,才能使权限系统与信息系统科学合理的进行匹配。

(1)权限系统控制要点

权限系统控制要点有:信息资源、用户、单位的机构设置、具体岗位、业务角色、具体任务、业务流程以及业务规则等。

(2)访问控制的特点

在信息系统中,访问控制系统要具有很好的适应性以满足动态的或者特定用户的安全需求。因此我们需要深入了解并分析系统访问控制的特点。

1)用户特点

信息系统的使用户数量繁杂,用户工作岗位变化也很频繁,如调进、调出、新进、辞职等。同时若新业务的增加也会使得用户的工作内容频繁变化。用户的不确定性是单位规模增大和业务增加的必然结果。

2)信息资源特点

现在系统普遍面临系统数据量大的特点,如何正确分类整理并确定其信息安全等级成为设计者必须要考虑的问题。

3)单位的机构设置特点

现在各个单位的机构设置都不尽相同,而且类型复杂,各个单位的机构设置都有其自己的特点、大型单位还存在地域上分布式的特点。

5)任务特点

单位环境中,具体任务的数量多并且种类复杂,因此,为了满足单位对访问控制的安全性需求,一般采用扩展性好、灵活性高的RBAC访问控制模型。根据具体任务涉及到的系统菜单等信息,需要对用户角色进行及时的赋权更新操作。

2.4.2 稳定性需求分析

软件系统的稳定性是决定软件系统好坏的一个重要因素。一套系统在持续操作时间内出错的概率就是指软件的稳定性,例如统计一天之内系统出错的次数。软件的稳定性需要从设计角度出发,依靠经验丰富的开发人员,通过合理划分系统模块,科学设计每个模块之间的关系,使用稳定的系统框架,来使系统即使更改部分代码,其对软件系统的影响也会将到最低。如果一个系统报错的概率比较大(一天内出错两次或更多次),或者需要重启(一天内出错两次或更多次)才能正常运行,这就表明系统的稳定比较差。不稳定的系统会给使用单位带来巨大的麻烦,如系统数据不及时、不准确、系统经常瘫痪、业务无法正常运作等问题。导致系统稳定性差的原因主要是系统的并发数太多或者系统容错能力差。本权限管理系统由于使用者大多只是管理员,并发数应该不会太多,主要精力还是放在提高系统的容错能力上。

3 概要设计

3.1 总体设计

通过超级管理员用户登录系统后,会进入系统主页面,页面上主要的功能有:功能管理,角色管理,用户管理,系统属性,信息管理模块。功能管理主要是对信息系统的功能菜单信息进行维护,包括“添加,删除,修改”操作。角色管理主要对用户的角色信息进行维护,包括“添加,查看,删除,修改,权限分配”操作。用户管理主要用管理信息系统用户的信息,包括“添加,查看,修改,删除”操作。系统属性主要用于显示当前系统的一些信息。用户管理是本论文重点,这里所说的用户管理就是权限管理。在权限管理中,包括信息管理设置了一些额外的信息显示功能。在这系统功能中,用户管理师最主要的功能。用户信息的增加,删除,修改,以及具体用户角色的分配,具体权限的查看都可以在此进行操作和查看。此时,管理员可以对其进行权限的修改。

3.2.1 模块划分

进入系统主页面,系统主要的功能有:功能管理,角色管理,用户管理,以及权限分配管理。如图所示:

图0.1 模块划分

3.2.2 模块设计

1)用户管理

在系统首页,用户输入用户名密码后,由JSP控制器接收,然后和后台数据库中的用户数据进行比较,验证成功则进入操作主页面。在权限管理主界面如果管理员用户需要对某个用户进行操作,需要首先对数据库中的用户信息进行搜索,然后再对检索出的用户数据进行修改或者删除。在用户管理界面上管理员用户可以直接进行添加用户账户操作。

图0.2 账户管理时序图

2)权限管理

权限管理存在于角色管理模块下,根据用户关联角色,角色关联具体权限的设计思路,因此用户点击角色管理进入角色管理模块进行操作。权限管理过程简述为:根据获取的用户信息,首先检索用户的角色信息,在根据检索出的角色信息,控制器通过查询数据库后返回所选用户的所有权限信息。这时管理员就可以

查看的用户权限信息,同时也可以对该用户的权限信息进行重新设置。

拓展:权限组管理。现在权限管理系统很多设计到了权限组的概念,主要是对用户、角色的进一步整合。可设计为用户点击权限组管理进入权限组管理模块,系统会显示所有权限组,用户可以对所选权限组进行修改和删除操作,也可以增加权限组。本系统中没有涉及到权限组的设计。

图0.3 权限管理时序图

3)重置及修改密码

重置密码,用户进入重置密码页面,输入要重置密码的用户账号后,点击确认,控制器就会用初始密码替换掉数据库中的当前密码,最后会在页面中显示初始密码。修改密码,用户进入用户信息修改页面,输入新密码后,点击提交,控制器就会对数据库进行操作,将当前密码替换成新密码。

图0.4 密码管理时序图

3.3模块设计

3.3.1权限管理模块

1)权限管理业务逻辑类设计

RightModifyBusiness类是权限修改业务逻辑类,主要是针对权限修改控制器发出修改权限消息,然后权限修改逻辑类相应,并通过JDBC修改数据库信息。他们之间通过Session传递消息,消息的内容存放在Form里,通过UserForm类接收和存储消息。UserForm是ActionForm子类,同时把String类作为自己的私有属性,主要是用于存储各种信息。JvDBO是JDBC连接的主要类,主要用于数据库的连接操作,同时将连接的Connection返回,供RightModifyBusiness使用。

图0.5 权限修改类图2)权限管理控制器类设计

图0.6 权限显示类图

权限管理控制器类,用于接收网页(JSP)传来的消息,然后通过调用业务逻辑类进行数据处理,然后根据处理后的情况跳转的不同的页面。这样可以实现复杂的业务逻辑。控制器类是Action的子类,其可以接收网页(JSP)传来的Form 表单的数据,同时利用Session进行保存和消息的传递。其依赖的类包括UserForm(进行数据的存储和传递),JvUser(权限操作对象),ActionMapping(主要用于页面的跳转)。在JvDBO类中还把Logger日志类作为自己的私有属性,所以在进行数据操作时,系统会记录相关的操作信息,方便管理员进行维护。

3.3.2 用户密码修改模块

1)用户密码修改业务逻辑类设计

密码操作管理模块涉及密码的修改,重置。这里只针对密码修改模块进行介绍。密码重置的原理和密码修改的原理大同小异,都是对数据库进行相关的操作。PasswordModifyBusiness密码修改业务逻辑主要是为密码修改控制器模块服务的。当密码修改业务逻辑收到控制器类的消息时,当然传递消息的渠道还是Session,载体依然是ActionForm。此时,业务逻辑类会提取Session中的数据跟据控制器的指令进行相关的数据库操作。在数据库操作之前,业务逻辑会进行数据库的连接和认证。

图0.7 密码修改业务逻辑图

2)用户密码修改控制器类设计

密码修改控制器类,是JSP 网页编程中MVC模块中的control,模块,即控

制器模块,主要功能是通过页面传送的消息和指令,通过复杂的后台业务逻辑处理,然后根据处理后的结果,进行相关的页面跳转。所以不同的结果会跳转的同一个页面或者不同的页面,这个完全取决于系统的设定。密码修改控制器收到网页表单里德数据后,会把数据存储在PasswordForm类中,然后通过Session类把数据传送给业务逻辑类进行相关的业务处理,并接收业务逻辑类处理后的结果,根据结果进行页面跳转操作。

图0.8 密码修改控制器类图

3.3.3 用户账户管理模块

1)用户账户管理Bean类设计

用户bean把用户的数据变量声明为私有属性,通过界面的set和get函数获取,然后提交到actionform表单中,再通过后台数据库进行匹配或者处理操作。

图0.9 用户Bean类图

2)用户账户管理Form类设计

ActionForm用于封装用户的请求参数,而请求参数是通过JSP页面的表单域传递过来的。可以把Form理解为JavaBean的一种形式,Form主要是当用户把网页里德表单填好后,点击提交按钮,然后网页会把表单里的数据通过Session 或Url传送给后台,此时后台会利用ActionForm类进行数据的接收操作。此时ActionForm类的任务就完成了。

图0.10 用户账户管理Form类图

3)用户账户管理业务逻辑类设计

用户账户管理模块,包括用户账户的增加,修改,删除,和现实模块,这里仅以用户账户删除模块进行介绍。其他的模块类结构和本模块结构相同,只是操

作上存在差异。用户删除业务逻辑类把日志类Logger加入到了自己的私有属性之中,主要是用于记录管理员在对用户账户进行的一系列操作。方便日后的维护和系统的安全。用户账户操作,依赖于用户类JvUser和用户表单类UserForm。其在接收到用户账户控制器类传来的消息后,会调用JvDBO类进行JDBC连接和数据库操作。实现JSP后台的复杂业务逻辑。

图0.11 用户账户删除业务逻辑类图

3.4 数据结构设计

权限系统所涉及的数据库表有如下几张:

表 3.1 数据库表名清单

中文表名英文表名表功能说明

用户信息表s_userinfo 记录用户相关信息

系统功能表s_menu 记录系统功能信息

角色信息表s_role 记录角色信息

权限信息表s_rolemenu 记录角色权限信息

3.4.1 用户信息表

表 3.2用户信息表

序号字段名字段中文名数据类型备注

1 uid 用户id int

2 username 用户姓名varchar(15)

系统权限管理设计方案(优选.)

OA系统权限管理设计方案 l 不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的功能。 l 可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中就提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。 l 权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进行重新开发。 l 满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能。 针对OA系统的特点,权限说明: 权限 在系统中,权限通过模块+动作来产生,模块就是整个系统中的一个子模块,可能对应一个菜单,动作也就是整个模块中(在B/S系统中也就是一个页面的所有操作,比如“浏览、添加、修改、删除”等)。将模块与之组合可以产生此模块下的所有权限。 权限组 为了更方便的权限的管理,另将一个模块下的所有权限组合一起,组成一个“权限组”,也就是一个模块管理权限,包括所有基本权限操作。比如一个权限组(用户管理),包括用户的浏览、添加、删除、修改、审核等操作权限,一个权限组也是一个权限。

角色 权限的集合,角色与角色之间属于平级关系,可以将基本权限或权限组添加到一个角色中,用于方便权限的分配。 用户组 将某一类型的人、具有相同特征人组合一起的集合体。通过对组授予权限(角色),快速使一类人具有相同的权限,来简化对用户授予权限的繁琐性、耗时性。用户组的划分,可以按职位、项目或其它来实现。用户可以属于某一个组或多个组。 通过给某个人赋予权限,有4种方式(参考飞思办公系统) A. 通过职位 a) 在职位中,职位成员的权限继承当前所在职位的权限,对于下级职位拥有的权限不可继承。 b) 实例中:如前台这个职位,对于考勤查询有权限,则可以通过对前台这个职位设置考勤查询的浏览权,使他们有使用这个对象的权限,然后再设置个,考勤查询权(当然也可以不设置,默认能进此模块的就能查询),则所有前台人员都拥有考勤查询的权利。 B. 通过项目 a) 在项目中,项目成员的权限来自于所在项目的权限,他们同样不能继承下级项目的权限,而对于项目组长,他对项目有全权,对下级项目也一样。 b) 实例中:在项目中,项目成员可以对项目中上传文档,查看本项目的文档,可以通过对项目设置一个对于本项目的浏览权来实现进口,这样每个成员能访问这个项目了,再加上项目文档的上传权和查看文档权即可。

一种通用权限管理方案的设计方案

一种通用权限管理方案的设计方案 分析了权限管理的概念和一些与权限管理容易混淆的概念。提出了一种目前可以应用到绝大多数与权限有关的系统设计中的通用权限管理方案。该方案以角色对用户进行分组,通过用户数据库、角色数据库、权限数据库、用户-权限数据库以及角色-权限数据库来实现权限的分层管理。该设计方案能够由管理员方便的对权限进行设置。通过对角色的权限设置可以达到快速设置权限。通过对用户的权限设置可以达到权限的精确控制。文章最后以某项目为基础对该权限设计方案进行了实现。通过测试,该方案能够很好的对用户权限进行控制,从而提高整个系统的安全性。 标签:权限系统角色数据库 1 权限管理的概念 权限管理是软件系统中最常见的功能之一。所谓权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。尤其是在B/S机构的系统中,由于没有专门的客户端软件系统,所以权限管理就显的尤为重要。如果一个B/S系统的权限管理设计的不好,那么一个“非法用户”就可以轻而易举的获取整个系统的所有本能,包括超级管理员的功能。那么这样的系统还有谁敢使用。 很多人,常将“用户身份认证”、“密码加密”、“系统管理”等概念与权限管理概念混淆。用户身份认证,根本就不属于权限管理范畴。用户身份认证,是要解决这样的问题:用户告诉系统“我是谁”,系统就问用户凭什么证明你就是“谁”呢?对于采用用户名、密码验证的系统,那么就是出示密码。当用户名和密码匹配,则证明当前用户是谁;对于采用指纹等系统,则出示指纹;对于硬件Key 等刷卡系统,则需要刷卡。密码加密,是隶属用户身份认证领域,不属于权限管理范畴。 2 权限管理的设计 2.1 权限管理的对象在一般的系统设计中,权限管理的参于对象包括用户对象、角色(或分组)对象、功能模块对象。角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色。功能模块则对不同的系统来说各不相同,一般在系统设计中最终将其以图形界元素的形式表现出来(比如软件界面上的各个功能按钮)。 2.2 权限管理举例下面我们举例说明2.1中提到的用户、角色、功能三个对象在权限管理中具体应用。表1中列出了某文档管理项目中权限管理的一部分设计表。从中我们可以清晰的区别出这三个对象以及它们的各自作用。

通用权限管理系统java权限处理及其实现思路

关键字: 用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将会将他们彻底的“拒之门外”。下面就让我们一起了解一下如何设计可以满足大部分B/S系统中对用户功能权限控制的权限系统。 需求陈述 ?不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的功能。 ?可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的 事情。所以,系统中就提出了对“组”进行操作的概念,将权限一致的 人员编入同一组,然后对该组进行权限分配。 ?权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断的重用,而不是每开发一套管 理系统,就要针对权限管理部分进行重新开发。 ?满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之 间,功能权限是可以重用的,而资源权限则不能。 关于设计 借助NoahWeb的动作编程理念,在设计阶段,系统设计人员无须考虑程序结构的设计,而是从程序流程以及数据库结构开始入手。为了实现需求,数据库的设计可谓及其重要,无论是“组”操作的概念,还是整套权限管理系统的重用性,都在于数据库的设计。 我们先来分析一下数据库结构:

最经典用户权限管理模块设计

实现业务系统中的用户权限管理--设计篇 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将会将他们彻底的“拒之门外”。下面就让我们一起了解一下如何设计可以满足大部分B/S系统中对用户功能权限控制的权限系统。 需求陈述 ?不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的功能。 ?可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便 的事情。所以,系统中就提出了对“组”进行操作的概念,将权限一致 的人员编入同一组,然后对该组进行权限分配。 ?权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断的重用,而不是每开发一套 管理系统,就要针对权限管理部分进行重新开发。 ?满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统 之间,功能权限是可以重用的,而资源权限则不能。 关于设计 借助NoahWeb的动作编程理念,在设计阶段,系统设计人员无须考虑程序结构的设计,而是从程序流程以及数据库结构开始入手。为了实现需求,数据库的设计可谓及其重要,无论是“组”操作的概念,还是整套权限管理系统的重用性,都在于数据库的设计。 我们先来分析一下数据库结构: 首先,action表(以下简称为“权限表”),gorupmanager表(以下简称为“管理组表”),以及master表(以下简称为“人员表”),是三张实体表,它们依次记录着“权限”的信息,“管理组”的信息和“人员”的信息。如下图:

多系统权限设计

多系统权限设计 1.多系统基于角色的权限设计 这种方案是最常见也是比较简单的方案,不过通常有这种设计已经够了,这种方案对于每一个操作不做控制,只是在程序中根据角色对是否具有操作的权限进行控制;这里我们就不做详述.此处采用角色关联模块的方式。 2.多系统基于操作的权限设计 这种模式下每一个操作都在数据库中有记录,用户是否拥有该操作的权限也在数据库中有记录,结构如下:

但是如果直接使用上面的设计,会导致数据库中的_SysUserFuncOperate这张表数据量非常大,所以我们需要进一步设计提高效率,请看方案3 3.多系统基于角色和操作的权限设计

如上图所示,我们通过采用角色分配操作的方式,这样子就可以减少操作权限表(_SysRole FuncOperate)中的记录,并且使设计更灵活一点。 但是这种方案在用户需求的考验之下也可能显得不够灵活够用,例如当用户要求临时给某位普通员工某操作权限时,我们就需要新增加一种新的用户角色,但是这种用户角色是不必要的,因为它只是一种临时的角色,如果添加一种角色还需要在收回此普通员工权限时删除此角色,我们需要设计一种更合适的结构来满足用户对权限设置的要求。 4.2,3组合的权限设计,其结构如下: 我们可以看到在上图中添加了_SysUserFunc和_SysUserFuncOperate表,使用此表来添加特殊用户的权限。这样在应用程序中我们就需要通过_SysUserFuncOperate和_SysRoleFuncOperat e两张表中的记录判断权限。 当然,有可能用户还会给出这样的需求:对于某一种Operate所操作的对象某一些记录会有权限,而对于其他的记录没有权限,比如说一个内容管理系统,对于某一些频道某个用户有

用户权限设计(三)——通用数据权限管理系统设计

通用数据权限管理系统设计(一) 作者:逸云 前言: 本文提供一种集成功能权限和数据权限的解决方法,以满足多层次组织中权限管理方面的集中控制。本方法是RBAC(基于角色的访问控制方法)的进一步扩展和延伸,即在功能权限的基础上增加数据权限的管理,实现数据权限和功能权限的集中处理。 解释: 功能权限:能做什么的问题,如增加销售订单; 数据权限:能在哪里干什么的问题,如察看北京分公司海淀销售部张三的销售订单; 术语: 资源:系统中的资源,主要是各种业务对象,如销售单、付款单等; 操作类型:对资源可能的访问方法,如增加、删除、修改等; 功能:对资源的操作,是资源与操作类型的二元组,如增加销售单、修改销售单等; 数据类型:业务系统中常用的数据权限类型,如公司、部门、项目、个人等; 数据对象:具体的业务对象,如甲公司、乙部门等等,包括所有涉及到数据权限的对象值;权限:角色可使用的功能,分角色的功能权限和角色的数据权限; 角色:特定权限的集合; 用户:参与系统活动的主体,如人,系统等。 通用数据权限管理系统设计(二) 方法说明: 在实际应用中,数据权限的控制点一般相对固定,如针对公司、部门、个人、客户、供应商等,也就是说数据权限一般针对指定数据类型下的一些数据对象。 本方法中,数据权限的依赖于功能权限,是对功能权限的进一步描述,说明角色在指定的功能点上的数据控制权限。 本方法中采用“没有明确规定即视为有效”的原则,如果没有定义功能的数据权限,则说明该角色具有该功能的全部的权限。如果定义了功能的某种类型的数据权限,则该用户只具有该类型下指定数据的数据权限。 这段话比较绕口,下面举个例子实际例子。 某公司有北京销售部、上海销售部和广州销售部三个销售部,现在需要定义几种角色:销售总监-- 能察看所有销售部的销售订单; 北京销售经理-- 只能察看北京销售部的所有销售订单; 上海销售经理-- 只能察看上海销售部的所有销售订单; 广州销售经理-- 只能察看广州销售部的所有销售订单;

系统权限管理设计方案.doc

OA系统权限管理设计方案7 OA系统权限管理设计方案 数据库2010-02-2310:09:25阅读13评论0字号:大中小 OA系统权限管理设计方案 l不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的功能。 l可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中就提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。 l权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进行重新开发。 l满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能。 针对OA系统的特点,权限说明: 权限

在系统中,权限通过模块+动作来产生,模块就是整个系统中的一个子模块,可能对应一个菜单,动作也就是整个模块中(在B/S系统中也就是一个页面的所有操作,比如“浏览、添加、修改、删除”等)。将模块与之组合可以产生此模块下的所有权限。 权限组 为了更方便的权限的管理,另将一个模块下的所有权限组合一起,组成一个“权限组”,也就是一个模块管理权限,包括所有基本权限操作。比如一个权限组(用户管理),包括用户的浏览、添加、删除、修改、审核等操作权限,一个权限组也是一个权限。 角色 权限的集合,角色与角色之间属于平级关系,可以将基本权限或权限组添加到一个角色中,用于方便权限的分配。 用户组 将某一类型的人、具有相同特征人组合一起的集合体。通过对组授予权限(角色),快速使一类人具有相同的权限,来简化对用户授予权限的繁琐性、耗时性。用户组的划分,可以按职位、项目或其它来实现。用户可以属于某一个组或多个组。 通过给某个人赋予权限,有4种方式(参考飞思办公系统) A.通过职位 a)在职位中,职位成员的权限继承当前所在职位的权限,对

权限管理设计说明

对EMS权限管理模块设计 1.权限设计概述 1.1引言 随着Web 服务的复杂度增加以及用户数量和种类的增多,安全问题在理论及工程上都 是一个必须考虑的问题,而权限管理是安全问题中一个很重要的方面。因此本文针对权限做 了一个分析。 权限可简单表述为这样的逻辑表达式:判断“Who对What(Which)进行How的操作”的 逻辑表达式是否为真。 1.2意义 ?用户管理及权限管理一直是应用系统中不可缺少的一个部分 ?系统用户很多,系统功能也很多 ?不同用户对系统功能的需求不同 ?出于安全等考虑,关键的、重要的系统功能需限制部分用户的使用 ?出于方便性考虑,系统功能需要根据不同的用户而定制 1.3目标 直观,因为系统最终会由最终用户来维护,权限分配的直观和容易理解,显得比较重要, 除了功能的必须,更主要的就是因为它足够直观。 简单,包括概念数量上的简单和意义上的简单还有功能上的简单。想用一个权限系统解 决所有的权限问题是不现实的。设计中将变化的“定制”特点比较强的部分判断为业务逻辑, 而将相同的“通用”特点比较强的部分判断为权限逻辑就是基于这样的思路。 扩展,采用可继承的方式解决了权限在扩展上的困难。引进Group概念在支持权限以组 方式定义的同时有效避免了权限的重复定义。 2.基于角色的权限管理设计(Role-Based Access Control,RBAC)2.1权限管理用例图

2.2用例图描述 超级管理员:系统中默认的角色,它是系统中拥有最高权限的角色,它不仅能够管理其他的管理员和用户,而且还可以对系统中每个模块的任一功能进行操作、维护。 普通管理员:它是由超级管理员创建的,并授予权限,它能够管理系统部分的功能,它可以查看所有普通管理员、普通用户的信息,它只能对由它自己创建的用户进行编辑、删除操作,和管理拥有权限的模块。 普通用户:它是系统中最低权限的角色,它只能对自己拥有的权限进行操作,一般情况下,它的权限是对信息的浏览和对自己信息的录入,修改。 登陆系统:根据用户拥有的权限不同,用户所能操作的功能多少就不同,所以在登陆系统的时候就要对用户的权限进行判断。

OA系统权限管理设计方案

OA系统权限管理设计方案 不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的 功能。 可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中就提出了对“组” 进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。 权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进 行重新开发。 满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源 权限则不能。 针对OA系统的特点,权限说明: 权限 在系统中,权限通过模块+动作来产生,模块就是整个系统中的一个子模块,可能对应一个菜单,动作也就是整个模块中(在B/S系统中也就是一个页面的所有操作,比如“浏览、添加、修改、删除”等)。将模块与之组合可以产生此模块下的所有权限。 权限组 为了更方便的权限的管理,另将一个模块下的所有权限组合一起,组成一个“权限组”,也就是一个模块管理权限,包括所有基本权限操作。比如一个权限组(用户管理),包括用户的浏览、添加、删除、修改、审核等操作权限,一个权限组也是一个权限。 角色 权限的集合,角色与角色之间属于平级关系,可以将基本权限或权限组添加到一个角色中, 用于方便权限的分配。 用户组 将某一类型的人、具有相同特征人组合一起的集合体。通过对组授予权限(角色),快速使一类人具有相同的权限,来简化对用户授予权限的繁琐性、耗时性。用户组的划分,可以按职位、项目或其它来实现。用户可以属于某一个组或多个组。

系统权限设计

系统权限设计 需求陈述 ?不同职责的人员,对于系统操作的权限应该是不同的。可以对“组”进行权限分配。 ?对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的 事情。所以,系统中就提出了对“组”进行操作的概念, 将权限一致的人员编入同一组,然后对该组进行权限分配。 ?权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断 的重用,而不是每开发一套管理系统,就要针对权限管理 部分进行重新开发。 ?满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资 源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能 (以后可以加入权限分配管理的功能,目前暂不考虑) 首先,action表(以下简称为“权限表”),gorupmanager表(以

下简称为“管理组表”),以及master表(以下简称为“人员表”),是三张实体表,它们依次记录着“权限”的信息,“管理组”的信息和“人员”的信息。如下图: 首先,action表(以下简称为“权限表”),gorupmanager 表(以下简称为“管理组表”),以及master表(以下简称为“人员表”),是三张实体表,它们依次记录着“权限”的信息,“管理组”的信息和“人员”的信息。如下图: 这三个表之间的关系是多对多的,一个权限可能同时属于多个管理组,一个管理组中也可能同时包含多个权限。同样的道理,一个人员可能同时属于多个管理组,而一个管理组中也可能同时包含多个人员。如下图:

由于这三张表之间存在着多对多的关系,那么它们之间的交互,最好使用另外两张表来完成。而这两张表起着映射的作用,分别是“actiongroup”表(以下简称“权限映射表”)和“mastergroup”表(以下简称“人员映射表”),前者映射了权限表与管理组表之间的交互。后者映射了人员表与管理组表之间的交互。如下图:

111111111通用权限管理系统详细设计说明书

第一章引言 1.1 编写目的 系统详细设计说明书在概要设计的基础上,对统一权限管理系统的各模块、数据等分别进行了实现层面上的要求和说明。 本文档读者为系统设计人员、软件实现人员等(编码人员、测试人员),为程序的开发提供依据。 1.2 背景 石家庄大学有办公自动化系统、图书管理系统、教务系统、排课系统、宿舍管理系统等等系统。每个系统都有独立的系统管理权限模块,不便于学校系统管理员的统一管理,而且管理成本也比较高。 统一权限管理系统实现以上软件的统一权限管理,实现系统管理、用户管理等功能,是实现单点登录的基础。 1、项目名称是《统一权限管理系统》; 2、本项目的委托单位是石家庄大学,开发单位是安全一班和二班的全体同学,主管部 门信息工程系。 1.3 定义 权限: 角色 数据库建模: 统一权限管理: 三层架构:

1.4 参考文献 用到的参考资料如下表1.1所示: 表1.1 参考资料表

第二章总体设计 2.1 系统功能概述 通过此权限软件来统一管理我们学校所有或大部分系统软件的用户权限,降低整个学校系统的权限分配复杂性、提高可维护性、降低系统管理员的管理成本。为二期的统一用户单点登录工程项目打下了良好的基础。 通过系统概要设计说明书可知,此统一权限管理系统主要实现系统管理、权限管理、用户管理、日志管理等功能。系统功能结构如图2.1所示。 图2.1 系统功能结构图 2.2 系统软件结构 统一权限管理系统的软件结构如图2.2所示。

图2.2 系统软件结构图

第三章数据设计 3.1 静态数据 初始状态下,统一权限管理系统的测试用户,设置初始超级管理员,其登录用户名为admin,密码为123456。 初始测试用户如表3.1所示。 表3.1 初始测试用户表 3.2 动态数据 统一权限管理系统涉及到的基本数据信息有系统信息、系统模块信息、角色信息、划分权限信息、用户信息、分配角色信息、部门信息等。 一、系统信息 系统信息应包含系统编号、系统名称、系统描述信息、显示顺序等,如表3.2所示。 表3.2 系统信息表 二、系统模块信息 系统模块信息应包含模块编号、模块名称、模块描述、模块地址、显示顺序、显示图标等,如表3.3所示。 表3.3 系统模块信息表

RBAC模型的通用权限管理系统的设计

基于RBAC模型的通用权限管理系统的设计(数据模型)的扩展 1 RBAC模型 访问控制是针对越权使用资源的防御措施。基本目标是为了限制访问主体(用户、进程、服务等)对访问客体(文件、系统等)的访问权限,从而使计算机系统在合法范围内使用;决定用户能做什么,也决定代表一定用户利益的程序能做什么[1]。 企业环境中的访问控制策略一般有三种:自主型访问控制方法、强制型访问控制方法和基于角色的访问控制方法(RBAC)。其中,自主式太弱,强制式太强,二者工作量大,不便于管理[1]。基于角色的访问控制方法是目前公认的解决大型企业的统一资源访问控制的有效方法。其显著的两大特征是:1.减小授权管理的复杂性,降低管理开销;2.灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。 NIST(The National Institute of Standards and Technology,美国国家标准与技术研究院)标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(Core RBAC)、角色分级模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和统一模型RBAC3(Combines RBAC)[1]。RBAC0模型如图1所示。 a. RBAC0定义了能构成一个RBAC控制系统的最小的元素集合。在RBAC之中,包含用户users(USERS)、角色roles(ROLES)、目标objects(OBS)、操作operations(OPS)、许可权permissions(PRMS)五个基本数据元素,权限被赋予角色,而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的权限。会话sessions是用户与激活的角色集合之间的映射。RBAC0与传统访问控制的差别在于增加一层间接性带来了灵活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的扩展。 b. RBAC1引入角色间的继承关系,角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构。 c. RBAC2模型中添加了责任分离关系。RBAC2的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。责任分离包括静态责任分离和动态责任分离。约束与用户-角色-权限关系一起决定了RBAC2模型中用户的访问许可。 d. RBAC3包含了RBAC1和RBAC2,既提供了角色间的继承关系,又提供了责任分离关系。 2核心对象模型设计

权限管理模块设计

权限管理模块设计说明书 摘要 权限管理分为两个部分,操作权限管理和资源权限管理。针对我们的系统,分别进行说明。 一、操作权限管理即为允许用户使用那些功能,进行哪些操作。有两个地方需要处理, 1、对用户隐藏没有授权的功能。如“LOG管理”功能没有对用户A授权,则用户A是看不见“LOG 管理”这个功能菜单的。 2、在功能所在的页面进行权限验证,防止没有授权的用户通过输入URL进入功能所在页面。 如“LOG管理”功能没有对用户A授权,则用户A是即使是手动输入“LOG管理”功能所在的页面,他也无法使用这个功能。 在实现方式上可以通过”角色”和”功能”来实现,一个”角色”对应多个”功能”,”用户”与”角色”是多对多的关系。当用户登录时通过 (用户->角色->功能)查询出该用户可以使用的功能列表并显示,无权使用的功能将被隐藏。并且在功能所在页面进行权限验证,避免没有权限的用户通过特殊方法进入页面。 二、资源权限管理的意思是限制用户对资源的访问和操作。 1、省级的用户可以查看和操作全省的数据。但不能查看和操作外省的数据。 2、市级的用户可以查看和操作全市的数据,但不能查看和操作该市以外的数据。 3、全国级的用户可以查看和操作全国的数据。

目录 1概述 (3) 1.1目的 (3) 2模块结构描述 (3) 3模块功能描述 (3) 3.1权限管理 (3) 3.1.1功能菜单管理 (3) 3.1.2用户管理 (4) 3.1.3角色管理 (4) 3.2操作权限验证 (4) 3.2.1登录验证 (5) 3.2.2页面载入验证 (5) 3.2.3页面操作权限验证 (5) 3.3资源权限验证 (6) 4数据库设计ER图 (6)

基于shiro的权限管理系统设计和实现_毕业设计

基于shiro的权限管理系统设计和实现 摘要 随着经济社会的发展和信息科学技术的不断进步,信息的处理量越来越大,也越来越繁杂,于是计算机技术被广泛的应用到社会的各个领域之中。但随着最近一些比较严重的信息系统泄密事件的发生,使用者意识到了信息系统安全的重要性,如何保护信息的安全成为使用者最关心的问题。这里我们从系统设计实现的角度进行处理,在用户对系统数据进行访问前,先通过基于RBAC的权限管理系统的验证,确定用户拥有的角色,根据用户角色的权限再向用户展示数据信息,从而实现保护系统信息的目的。 该系统依托现在流行的JSP语言,通过MySQL数据库的数据处理,开发出通用权限管理系统来对用户身份权限信息进行验证。这套系统具有权限分配简单、扩展性好的优点,并且支持岗位、权限多变的各种需求。作为信息系统的附属系统,该系统很好的实现了用户与页面功能数据的整合和分离,还增添了信息管理等附带功能。实践证明,基于RBAC的权限管理系统是最方便和快捷的安全管理控制方法。 关键词:网络信息安全;RBAC;权限管理系统;角色

ABSTRACT As the development of the social economy and the technology and science, the information needed to treat is bigger and bigger, and become increasingly complex, so computer technology is widely applied to every field of society. But along with some serious information system leaks events happened one after another, people have realized the importance of network security, thus how to protect information security data from violation has become that users care most about. Here, a detailed analysis of the design from the viewpoint of the system's realization is given, users first must log in to access the privilege management system, for each user group one or more users are selected and their roles and authority s are identified, and then they can view the client list and details about each client, so as to achieve the goal of protection system information. The authority management system is based on fashionable JSP language and MySQL database technology to authenticate user identity authorization information. Authority administrative system that adopts this method has stronger commonness and practicability, which can meet demand of authority management in general application system. As the subsidiary system of information system, the system is good enough to achieve the integration and separation between the user and the function. Practices show that an authority management system based on RBAC is the most convenient and efficient safety management control. Key words:Network information security;Role-Based Access Control;Authority management system;Role

通用数据权限管理系统设计

通用数据权限管理系统设计 开发者在线https://www.wendangku.net/doc/ba5598120.html,更新时间:2008-03-30作者:逸云来源:CSDN 本文关键词:权限数据通用数据库 前言: 本文提供一种集成功能权限和数据权限的解决方法,以满足多层次组织中权限管理方面的集中控制。本方法是RBAC(基于角色的访问控制方法)的进一步扩展和延伸,即在功能权限的基础上增加数据权限的管理,实现数据权限和功能权限的集中处理。 解释: 功能权限:能做什么的问题,如增加销售订单; 数据权限:能在哪里干什么的问题,如察看北京分公司海淀销售部张三的销售订单; 术语: 资源:系统中的资源,主要是各种业务对象,如销售单、付款单等; 操作类型:对资源可能的访问方法,如增加、删除、修改等; 功能:对资源的操作,是资源与操作类型的二元组,如增加销售单、修改销售单等; 数据类型:业务系统中常用的数据权限类型,如公司、部门、项目、个人等; 数据对象:具体的业务对象,如甲公司、乙部门等等,包括所有涉及到数据权限的对象值; 权限:角色可使用的功能,分角色的功能权限和角色的数据权限; 角色:特定权限的集合; 用户:参与系统活动的主体,如人,系统等。 通用数据权限管理系统设计(二) 方法说明: 在实际应用中,数据权限的控制点一般相对固定,如针对公司、部门、个人、客户、供应商等,也就是说数据权限一般针对指定数据类型下的一些数据对象。 本方法中,数据权限的依赖于功能权限,是对功能权限的进一步描述,说明角色在指定的功能点上的数据控制权限。 本方法中采用“没有明确规定即视为有效”的原则,如果没有定义功能的数据权限,则说明该角色具有该功能的全部的权限。如果定义了功能的某种类型的数据权限,则该用户只具有该类型下指定数据的数据权限。 这段话比较绕口,下面举个例子实际例子。 某公司有北京销售部、上海销售部和广州销售部三个销售部,现在需要定义几种角色: 销售总监-- 能察看所有销售部的销售订单; 北京销售经理 -- 只能察看北京销售部的所有销售订单; 上海销售经理 -- 只能察看上海销售部的所有销售订单; 广州销售经理 -- 只能察看广州销售部的所有销售订单; 上述角色的定义如下:

通用权限管理系统设计说明

通用权限管理系统设计 一.引言 权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设计,以满足不同系统用户的需求,将会浪费我们不少宝贵时间,所以花时间来设计一个相对通用的权限系统是很有意义的。 二.设计目标 设计一个灵活、通用、方便的权限管理系统。 在这个系统中,我们需要对系统的所有资源进行权限控制,那么系统中的资源包括哪些呢?我们可以把这些资源简单概括为静态资源(功能操作、数据列)和动态资源(数据),也分别称为对象资源和数据资源,后者是我们在系统设计与实现中的叫法。 系统的目标就是对应用系统的所有对象资源和数据资源进行权限控制,比如应用系统的功能菜单、各个界面的按钮、数据显示的列以及各种行级数据进行权限的操控。 三.相关对象及其关系 大概理清了一下权限系统的相关概念,如下所示: 1.权限 系统的所有权限信息。权限具有上下级关系,是一个树状的结构。下面来看一个例子 系统管理 用户管理 查看用户 新增用户

修改用户 删除用户 对于上面的每个权限,又存在两种情况,一个是只是可访问,另一种是可授权,例如对于“查看用户”这个权限,如果用户只被授予“可访问”,那么他就不能将他所具有的这个权限分配给其他人。 2.用户 应用系统的具体操作者,用户可以自己拥有权限信息,可以归属于0~n个角色,可属于0~n个组。他的权限集是自身具有的权限、所属的各角色具有的权限、所属的各组具有的权限的合集。它与权限、角色、组之间的关系都是n对n的关系。 3.角色 为了对许多拥有相似权限的用户进行分类管理,定义了角色的概念,例如系统管理员、管理员、用户、访客等角色。角色具有上下级关系,可以形成树状视图,父级角色的权限是自身及它的所有子角色的权限的综合。父级角色的用户、父级角色的组同理可推。 4.组 为了更好地管理用户,对用户进行分组归类,简称为用户分组。组也具有上下级关系,可以形成树状视图。在实际情况中,我们知道,组也可以具有自己的角色信息、权限信息。这让我想到我们的QQ用户群,一个群可以有多个用户,一个用户也可以加入多个群。每个群具有自己的权限信息。例如查看群共享。QQ群也可以具有自己的角色信息,例如普通群、高级群等。

通用权限管理系统设计

通用权限管理系统 设计

通用权限管理系统设计 一.引言 权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设计,以满足不同系统用户的需求,将会浪费我们不少宝贵时间,因此花时间来设计一个相对通用的权限系统是很有意义的。 二.设计目标 设计一个灵活、通用、方便的权限管理系统。 在这个系统中,我们需要对系统的所有资源进行权限控制,那么系统中的资源包括哪些呢?我们能够把这些资源简单概括为静态资源(功能操作、数据列)和动态资源(数据),也分别称为对象资源和数据资源,后者是我们在系统设计与实现中的叫法。 系统的目标就是对应用系统的所有对象资源和数据资源进行权限控制,比如应用系统的功能菜单、各个界面的按钮、数据显示的列以及各种行级数据进行权限的操控。 三.相关对象及其关系 大概理清了一下权限系统的相关概念,如下所示: 1. 权限

系统的所有权限信息。权限具有上下级关系,是一个树状的结构。下面来看一个例子 系统管理 用户管理 查看用户 新增用户 修改用户 删除用户 对于上面的每个权限,又存在两种情况,一个是只是可访问,另一种是可授权,例如对于“查看用户”这个权限,如果用户只被授予“可访问”,那么她就不能将她所具有的这个权限分配给其它人。 2. 用户 应用系统的具体操作者,用户能够自己拥有权限信息,能够归属于0~n个角色,可属于0~n个组。她的权限集是自身具有的权限、所属的各角色具有的权限、所属的各组具有的权限的合集。它与权限、角色、组之间的关系都是n对n的关系。 3. 角色

为了对许多拥有相似权限的用户进行分类管理,定义了角色的概念,例如系统管理员、管理员、用户、访客等角色。角色具有上下级关系,能够形成树状视图,父级角色的权限是自身及它的所有子角色的权限的综合。父级角色的用户、父级角色的组同理可推。 4. 组 为了更好地管理用户,对用户进行分组归类,简称为用户分组。组也具有上下级关系,能够形成树状视图。在实际情况中,我们知道,组也能够具有自己的角色信息、权限信息。这让我想到我们的QQ用户群,一个群能够有多个用户,一个用户也能够加入多个群。每个群具有自己的权限信息。例如查看群共享。QQ 群也能够具有自己的角色信息,例如普通群、高级群等。 针对上面提出的四种类型的对象,让我们经过图来看看她们之间的关系。

权限系统设计模型及实现

内容发布系统权限设计说明书 项目名称:内容发布系统发布系统v1.0 分类:设计说明书部门:开发部 作者:日期:错误!未指定开关参数。参考号:V1.0 页数: 附注:

文档控制页

权限系统设计模型及实现 设计一个比较抽象和通用的权限系统是一件比较复杂的工作,根据实际目前项目需要,我们设计了如下一个简易基于角色的权限模块。 先引出权限系统中的概念 1概念 用户:使用权限的登录用户或者系统.一个用户有多个角色,但同时只能以一个角色登录系统。 角色:拥有相关权限的一个集合。一个角色可以有多个权限,一个角色有多个用户。权限:权限是一个资源+操作的组合。即权限是指对什么东西有什么动作。如用户管理是一个资源,而用户的增加、修改是指具体的操作,而整个“用户”+“增加”就构成了用户增加的权限。单独的资源或操作在权限系统中没有意义。 操作:对资源的动作。如对数据的增加、删除、修改;对模块的登录等。 资源:系统中要权限控制的东西。也就是什么东西要进行权限的控制。资源有不同的类型,一般系统中会遇到的能用类型为功能权限和数据权限。目前我们系统中用到的资源类型有“模块”和“栏目”,用英文和表示。

2模型的描述 类图说明: : 的实现 : 的实现 : 表示一个权限点。其实表示操作的资源编号,表示资源的类型,目前实现为表示是一个模块,表示资源是一个栏目;是操作的编号,对于模块和栏目不同类型的资源操作可能是不一样的。详见附件里的操作编码规则。 :表示系统中的某个功能模块。 : 表示用户和角色的关联关系。一个,有多个 : 表示角色和权限的关联关系。一个有多个 3具体实现 具体的实现包括了3个部分:权限的创建、权限的授权、权限的使用。下面各个部分描述: 3.1 权限创建 权限的创建过程就是应用系统开发人员定义好系统中要权限控制的资源以及定义对对资源具体化为哪些操作的过程。在我们的内容发布里面作如下定义:

权限管理系统

权限管理系统 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

权限管理系统 一、系统功能分析 1. 系统的功能模块 系统主要完成权限授予及权限验证的功能,权限授予实现某个用户对模块的某个功能的操作许可,组成权限数据库。为用户分配角色来实现授权。权限验证实现通过实现定义好的权限数据库,判断该用户是否对某个模块的某个功能具有操作权限,权限验证采用过滤器来设计,用户在应用系统中进行所有操作都需要经过这一层过滤器。 系统设计包括以下5个模块: ?人员管理:创建、更新、删除、查询人员信息、人员角色维护。 ?功能管理:创建、更新、删除、查询功能信息。 ?模块管理:创建、更新、删除、查询模块信息、模块功能维护。 ?角色管理:创建、更新、删除、查询角色信息、角色权限维护。 ?验证权限:判断用户对某一个模块的操作是否合法。 图系统功能结构图 2. 技术选型 系统采用业界常用的J2EE框架进行组合。要求成熟稳定的系统框架以满足系统的松耦合性、扩张性和可维护性。权限管理系统采用 Struts+Hibernate+Spring三种框架组合开发。 表示层和控制层框架:选择业界广泛使用而且成熟稳定的Struts。 业务逻辑层框架:选择轻量级SpringFramework。 持久层框架:选择Hibernate。

3. 系统逻辑结构分析 系统采用Struts+Hibernate+Spring架构进行开发。在体系结构上将系统划分为四个层次:表示层、控制层、业务层、持久层。表示层和控制层融合紧密,采用struts框架;持久层采用Hibernate框架;业务层和持久层统一使用spring框架支撑。 Struts框架接收来自表示层请求“”,请求参数封装在“xxxForm”中,struts依据配置信息调用控制层实例“xxxAction”的相关方法,该方法从“xxxForm”中取回请求参数,并从SpringBean容器中获取业务层接口“xxxManager”的一个实例“xxxManagerImpl”。在SpringBean容器初始化“xxxManagerImpl”实例时,会根据beanid=“xxxDAO”获取对应的“xxxDAO”的一个实例,并赋值给“xxxManagerImpl”的“xxxDAO”接口。xxxManagerImpl 实例会调用持久层接口“xxxDAO”实例的方法完成具体的操作,并返回操作结果。 图权限管理模型结构图 ?表示层(view): 表示层主要负责在前台JSP页面上展示控制层提供的数据,提供操作界面,将用户的操作请求提交给控制层。 ?控制层(Controller): 控制具体的业务流程。接受来自表示层的用户操作请求,调用业务层的接口完成用户请求的处理,并将处理结果和数据保存到request对象中,控制流程转向表示层输出处理结果和数据。表示层和控制层结合起来开发,采用struts框架,控制层的配置是在配置文件中定义的,控制层和表示层之间的接口也需要在该文件中定义。 ?业务层(Manager):

相关文档