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

上传人:b****8 文档编号:27791828 上传时间:2023-07-05 格式:DOCX 页数:34 大小:337.92KB
下载 相关 举报
基于shiro的权限管理系统设计和实现.docx_第1页
第1页 / 共34页
基于shiro的权限管理系统设计和实现.docx_第2页
第2页 / 共34页
基于shiro的权限管理系统设计和实现.docx_第3页
第3页 / 共34页
基于shiro的权限管理系统设计和实现.docx_第4页
第4页 / 共34页
基于shiro的权限管理系统设计和实现.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

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

《基于shiro的权限管理系统设计和实现.docx》由会员分享,可在线阅读,更多相关《基于shiro的权限管理系统设计和实现.docx(34页珍藏版)》请在冰豆网上搜索。

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

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

摘要

随着经济社会的发展和信息科学技术的不断进步,信息的处理量越来越大,也越来越繁杂,于是计算机技术被广泛的应用到社会的各个领域之中。

但随着最近一些比较严重的信息系统泄密事件的发生,使用者意识到了信息系统安全的重要性,如何保护信息的安全成为使用者最关心的问题。

这里我们从系统设计实现的角度进行处理,在用户对系统数据进行访问前,先通过基于RBAC的权限管理系统的验证,确定用户拥有的角色,根据用户角色的权限再向用户展示数据信息,从而实现保护系统信息的目的。

该系统依托现在流行的JSP语言,通过MySQL数据库的数据处理,开发出通用权限管理系统来对用户身份权限信息进行验证。

这套系统具有权限分配简单、扩展性好的优点,并且支持岗位、权限多变的各种需求。

作为信息系统的附属系统,该系统很好的实现了用户与页面功能数据的整合和分离,还增添了信息管理等附带功能。

实践证明,基于RBAC的权限管理系统是最方便和快捷的安全管理控制方法。

矚慫润厲钐瘗睞枥庑赖。

关键词:

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

ABSTRACT

Asthedevelopmentofthesocialeconomyandthetechnologyandscience,theinformationneededtotreatisbiggerandbigger,andbecomeincreasinglycomplex,socomputertechnologyiswidelyappliedtoeveryfieldofsociety.Butalongwithsomeseriousinformationsystemleakseventshappenedoneafteranother,peoplehaverealizedtheimportanceofnetworksecurity,thushowtoprotectinformationsecuritydatafromviolationhasbecomethatuserscaremostabout.Here,adetailedanalysisofthedesignfromtheviewpointofthesystem'srealizationisgiven,usersfirstmustlogintoaccesstheprivilegemanagementsystem,foreachusergrouponeormoreusersareselectedandtheirrolesandauthoritysareidentified,andthentheycanviewtheclientlistanddetailsabouteachclient,soastoachievethegoalofprotectionsysteminformation.聞創沟燴鐺險爱氇谴净。

TheauthoritymanagementsystemisbasedonfashionableJSPlanguageandMySQLdatabasetechnologytoauthenticateuseridentityauthorizationinformation.Authorityadministrativesystemthatadoptsthismethodhasstrongercommonnessandpracticability,whichcanmeetdemandofauthoritymanagementingeneralapplicationsystem.Asthesubsidiarysystemofinformationsystem,thesystemisgoodenoughtoachievetheintegrationandseparationbetweentheuserandthefunction.PracticesshowthatanauthoritymanagementsystembasedonRBACisthemostconvenientandefficientsafetymanagementcontrol.残骛楼諍锩瀨濟溆塹籟。

Keywords:

Networkinformationsecurity;Role-BasedAccessControl;Authoritymanagementsystem;Role酽锕极額閉镇桧猪訣锥。

1前言

随着计算机和网络信息技术的高速发展,网络信息的安全成为越来越大的问题,而访问控制技术是实现系统信息安全的重要手段。

随着现在系统普遍面向用户数大,处理数据量大,功能日益复杂的现状,如果还继续使用ABAC的访问控制模式将会使权限管理的实现变的相当繁琐和复杂。

于是人们设计了多种用来控制用户权限的系统模型,来确保敏感的数据信息只有拥有相应权限的人才可能看得到。

通过实践,基于角色的权限控制(Role—BasedAccessControl,RBAC)模型由于其简单方便易于维护的特点得到了越来越广泛的认同,被广泛应用在各种网络信息系统和大型MIS系统中。

鎦诗涇艳损楼紲鯗餳類。

1.1项目背景

在20世纪90年代发展并日臻完善的基于角色的访问控制(RBAC,Role-BasedAccessControl)是一种管理和增强系统安全性的技术。

这种访问控制通过引入“角色”这一中介量,从而实现了用户和访问许可的逻辑分离,极大地方便了权限管理。

栉缏歐锄棗鈕种鵑瑶锬。

JSP技术是现在流行的网络系统开发技术,因其具有跨平台的适应能力而被众多设计者所采用。

当Web服务器接收到访问JSP网页的请求时,首先执行网页的程序段,然后将执行结果返回给客户。

Java程序段可以对数据库数据进行操作,也可以返回或者前进到另外一个界面。

JSP与JavaServlet相似,所有数据处理均在服务器端进行,用户只需要用浏览器接收服务器反馈的信息即可。

JSP技术的基础是JavaServlet,应用程序的开发需要同时拥有JavaServlet和JSP。

JSP继承了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠的所有特点。

JSP可用等式表示为:

HTML+Java=JSP。

辔烨棟剛殓攬瑤丽阄应。

1.2目的及意义

随着信息网络技术的在社会各个领域的广泛应用,如何防止敏感数据信息的泄露成为系统使用者最关心的问题。

同时,为了保证系统的安全稳定的运行,使员工只能对自己拥有权限的数据进行操作和处理,其他的都不能查看以及操作,就需要在系统中根据每个人的职能为其分配相应的权限。

基于RABC的权限管理平台因其简单、方便快捷的权限处理机制,很好的解决了数据泄密以及功能权限的问题。

峴扬斕滾澗辐滠兴渙藺。

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

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

詩叁撻訥烬忧毀厉鋨骜。

针对基于RABC的权限管理系统的设计理念,我从实际需求和能力出发,设计并实现了这个权限管理系统,它具有自适应性强、通用性好的特点,可以很好的减少权限管理系统的维护工作,提高权限管理系统的通用性,并且能够避免权限管理系统的重复开发问题。

系统着重关注了用户与访问许可实现逻辑分离的过程,可以作为大家认识了解和学习RBAC技术的一个范例。

则鯤愜韋瘓賈晖园栋泷。

1.3B/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.3UML建模

在权限管理系统中用户有两类:

一种是管理员用户,另一种就是一般用户。

由于本权限管理系统设计简单,这时里只给用户功能用例图。

風撵鲔貓铁频钙蓟纠庙。

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)用户账户管理业务逻辑类设计

用户账户管理模

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1