基于 rbac 和 acegi 技术的用户权限控制管理系统
DESCRIPTION
基于 RBAC 和 ACEGI 技术的用户权限控制管理系统. 软件工程 200604 班 徐启祥 导师:熊丽荣老师. 毕业设计任务. 设计一个通用的面向 SSH 框架项目的用户权限管理系统,基于 SSH 框架的项目采用 RBAC 和 ACEGI 相结合的权限访问控制方式 期望目标 通过毕设开发的系统,能够对基于 SSH 框架的应用系统进行权限设置和管理. 1. 2. 3. 4. 5. 6. 相关技术介绍. RBAC 和 ACEGI 的扩展. 管理系统设计与实现. 管理系统的应用. 总结. 致谢. 目录. 相关技术. 访问控制策略 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/1.jpg)
基于 RBAC和 ACEGI技术的用户权限控制管理系统
软件工程 200604 班 徐启祥 导师:熊丽荣老师
![Page 2: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/2.jpg)
Company Logo
毕业设计任务
设计一个通用的面向 SSH 框架项目的用户权限管理系统,基于 SSH 框架的项目采用 RBAC 和 ACEGI 相结合的权限访问控制方式
期望目标 通过毕设开发的系统,能够对基于 SSH框
架的应用系统进行权限设置和管理
![Page 3: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/3.jpg)
Company Logo
目录
相关技术介绍1
RBAC和 ACEGI的扩展2
管理系统设计与实现3
管理系统的应用4
总结5
致谢6
![Page 4: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/4.jpg)
Company Logo
相关技术
访问控制策略 自主访问控制( DAC) 强制访问控制(MAC) 基于角色访问控制( RBAC)
安全框架 ACEGI
![Page 5: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/5.jpg)
Company Logo
访问控制策略
DAC 自主性 传递性
MAC 安全级别 规则:不允许低安全级别的用户读高安全级别的信息,也不
允许高安全级别的信息写入低安全级别的区域,即信息只能向高安全级别的方向流动
RBAC 最小权限原则 职责分离原则
![Page 6: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/6.jpg)
Company Logo
ACEGI安全框架
体系结构图
![Page 7: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/7.jpg)
Company Logo
ACEGI安全框架认证时序图
:User authencationProcessingFilter Authencation authencationManager
ContextHolder AuthencationException
login
getCredentials()
getPrincipal()
save
authencation
getAuthorities()
save
failure
![Page 8: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/8.jpg)
Company Logo
RBAC模型引入
ACEGI 框架用户、角色(权限)和资源关系
用户 U0 用户 U1
资源 0 资源 1
公共权限 P0 公共权限 P1 权限 P3公共权限 P2
资源 2
![Page 9: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/9.jpg)
Company Logo
RBAC模型的引入
ACEGI 框架引入 RBAC 模型后
用户 U0 用户 U1
资源 0 资源 1
公共权限 P0 公共权限 P1 权限 P3
公共角色 R0 角色 R1
公共权限 P2
资源 2
![Page 10: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/10.jpg)
Company Logo
ACEGI的扩展
ACEGI 原有的访问控制配置
![Page 11: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/11.jpg)
Company Logo
ACEGI的扩展 UrlFilterInvocationDefinitionSource 实现
-url : string-cad : ConfigAttributeDefinition
UrlEntryHolder
ConfigAttributeDefinition
MappingSqlQuery
+SecuredUrlDefinition()+mapRow() : object
SecuredUrlDefinition
+lookupAttributes() : ConfigAttributeDefinition+getConfigAttributeDefinitions() : List<ConfigAttributeDefinition>+afterPropertiesSet()+getRdbmsEntryHolderList()+refreshWebResdbCache()
UrlFilterInvocationDefinitionSource
AbstractFilterInvocationDefinitionSource
1
1该类是 URL 资源访问控制的ObjectDefinitionSource
![Page 12: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/12.jpg)
Company Logo
ACEGI的扩展 扩展后的配置
![Page 13: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/13.jpg)
Company Logo
ACEGI的扩展 MethodFilterInvocationDefinitionSource(FUNCTION资源) ——MethodSecurityInterceptor
AOP代理
+getAdvicesAndAdvisorsForBean() : object[]+isMatch() : Boolean+afterPropertiesSet()
RdbmsBeanNameAutoProxyCreatorBeanNameAutoProxyCreator
+AopBeanNames()+mapRow() : object
AopBeanNames
MappingSqlQuery
1
1
![Page 14: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/14.jpg)
Company Logo
管理系统的设计用户浏览器
WEB 服务器 用户身份认证
ACEGI 过滤器访问控制
权限控制管理系统
数据库
验证成功
状态数据读取 / 更新
基本表管理
用户名、密码
验证失败跳转错误页面
HTTP 请求
返回响应
会话过程
终端 Web 服务器 基于 RBAC 和 ACEGI 技术的权限管理
系统的总体概述
![Page 15: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/15.jpg)
Company Logo
管理系统的设计
用户权限控制管理系统的总功能图
![Page 16: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/16.jpg)
Company Logo
管理系统的设计数据库设计
Users
PK id
name passwd status create_datetime update_datetime
Roles
PK id
name descn create_datetime update_datetime
Permissions
PK id
name type descn create_datetime update_datetime
Resources
PK id
name type res_string descn url_seq target_bean_id create_datetime update_datetime
User_Role
PK user_idPK role_id
Role_Permission
PK role_idPK permission_id
permission_Resource
PK permission_idPK resource_id
bean_names
PK id
name class_name status create_datetime update_datetime
![Page 17: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/17.jpg)
Company Logo
管理系统的实现
web 层 WebWork
ActionServlet
ActionJSP
业务层 Spring
Spring IoC
持久层 Hibernate
Hibernate DAO
PO
数据库
系统架构图
![Page 18: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/18.jpg)
Company Logo
管理系统的实现ActionSupport
BaseAction
<<extends>>
+list() : string+addResource() : string+saveAddResource() : string+editResource() : string+saveEditResource() : string+deleteResource() : string
-resourceService : ResourceService
ResourceAction
<<extends>>+getResources() : List<Resource>+getResource() : Resource+getResourcesByType() : List<Resource>+saveResource() : void+deleteResource() : void+saveMergeResource() : void+isExistByName() : Boolean+isExistBySeq() : Boolean
<<接口>>ResourceService
+setId() : void
-id : string-name : string-type : string-description : string-value : string-urlSeq : int-permissions-targetBean
Resource
ResourceServiceImpl BaseServiceImpl
<<接口>>BaseService
+getAllResources() : List<Resource>+getResource() : Resource+getResourcesByType() : List<Resource>+saveResource() : void+removeResource() : void+saveMergeResource() : void+isExistByName() : Boolean+isExistBySeq() : Boolean
<<接口>>ResourceDao
ResourceDaoImpl
BaseDaoImpl
<<接口>>BaseDao
+getHibernateTemplate()+setSessionFaction()
HibernateDaoSupport
<<invoke>>
<<implements>>
<<invoke>>
<<extends>>
<<implements>>
<<implements>>
<<extends>>
<<implements>>
<<extends>>
<<uses>>
资源配置模块类图
![Page 19: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/19.jpg)
Company Logo
管理系统演示界面
系统登录界面登录后主页面资源管理页面添加 URL 资源页面成功添加 URL 资源页面用户 / 权限管理页面 编辑角色页面 用户管理页面
![Page 20: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/20.jpg)
Company Logo
管理系统的应用提供了 ACEGI 扩展包 rbac_acegi.jar 在 SSH 架构应用中配置同 ACEGI 配置相似
配置 web.xml 的代码段
Bean 配置
![Page 21: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/21.jpg)
Company Logo
管理系统的应用
ACEGI 扩展部分的配置
缓存配置objectDefinitionSource 配置拦截器配置
代理配置
![Page 22: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/22.jpg)
Company Logo
管理系统的应用 测试项目权限配置
![Page 23: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/23.jpg)
Company Logo
管理系统的应用——测试项目演示
主页页面点击“显示用户”,无权访问的错误页面用户 www 登录后主页页面再次点击“显示用户”,出现用户列表页面用户 www 查看新闻页面
![Page 24: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/24.jpg)
Company Logo
总结
针对 ACEGI 权限管理的不足,对其进行扩展使它配置信息不是直接写入配置文件,而是通过配置从数据库读取信息,能达到动态管理要求
针对现阶段流行的框架,开发设计出一个对基于 SSH 框架通用的权限控制管理系统, SSH 框架的应用能够利用管理系统进行自身的用户权限控制的管理
该系统基本完成了毕业设计的要求,当然还存在不足有待改善
![Page 25: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/25.jpg)
Company Logo
致谢最后,感谢我的指导老师熊丽荣老师,感谢你一
直以来对我们的信任与支持,在毕业设计阶段一直关心我们的进度,能够安排一周一次的会面与讨论,为我们提供参考意见。
![Page 26: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统](https://reader033.vdocuments.site/reader033/viewer/2022061318/568133e4550346895d9ad66c/html5/thumbnails/26.jpg)