26
基基 RBAC 基 ACEGI 基基基基基基基基基 基基基基基基基 200604 基 基基基 基基 基基基基基

基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Embed Size (px)

DESCRIPTION

基于 RBAC 和 ACEGI 技术的用户权限控制管理系统. 软件工程 200604 班 徐启祥 导师:熊丽荣老师. 毕业设计任务. 设计一个通用的面向 SSH 框架项目的用户权限管理系统,基于 SSH 框架的项目采用 RBAC 和 ACEGI 相结合的权限访问控制方式 期望目标 通过毕设开发的系统,能够对基于 SSH 框架的应用系统进行权限设置和管理. 1. 2. 3. 4. 5. 6. 相关技术介绍. RBAC 和 ACEGI 的扩展. 管理系统设计与实现. 管理系统的应用. 总结. 致谢. 目录. 相关技术. 访问控制策略 - PowerPoint PPT Presentation

Citation preview

Page 1: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

基于 RBAC和 ACEGI技术的用户权限控制管理系统

软件工程 200604 班 徐启祥 导师:熊丽荣老师

Page 2: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

毕业设计任务

设计一个通用的面向 SSH 框架项目的用户权限管理系统,基于 SSH 框架的项目采用 RBAC 和 ACEGI 相结合的权限访问控制方式

期望目标 通过毕设开发的系统,能够对基于 SSH框

架的应用系统进行权限设置和管理

Page 3: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

目录

相关技术介绍1

RBAC和 ACEGI的扩展2

管理系统设计与实现3

管理系统的应用4

总结5

致谢6

Page 4: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

相关技术

访问控制策略 自主访问控制( DAC) 强制访问控制(MAC) 基于角色访问控制( RBAC)

安全框架 ACEGI

Page 5: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

访问控制策略

DAC 自主性 传递性

MAC 安全级别 规则:不允许低安全级别的用户读高安全级别的信息,也不

允许高安全级别的信息写入低安全级别的区域,即信息只能向高安全级别的方向流动

RBAC 最小权限原则 职责分离原则

Page 6: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

ACEGI安全框架

体系结构图

Page 7: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

ACEGI安全框架认证时序图

:User authencationProcessingFilter Authencation authencationManager

ContextHolder AuthencationException

login

getCredentials()

getPrincipal()

save

authencation

getAuthorities()

save

failure

Page 8: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

RBAC模型引入

ACEGI 框架用户、角色(权限)和资源关系

用户 U0 用户 U1

资源 0 资源 1

公共权限 P0 公共权限 P1 权限 P3公共权限 P2

资源 2

Page 9: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

RBAC模型的引入

ACEGI 框架引入 RBAC 模型后

用户 U0 用户 U1

资源 0 资源 1

公共权限 P0 公共权限 P1 权限 P3

公共角色 R0 角色 R1

公共权限 P2

资源 2

Page 10: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

ACEGI的扩展

ACEGI 原有的访问控制配置

Page 11: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

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 技术的用户权限控制管理系统

Company Logo

ACEGI的扩展 扩展后的配置

Page 13: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

ACEGI的扩展 MethodFilterInvocationDefinitionSource(FUNCTION资源) ——MethodSecurityInterceptor

AOP代理

+getAdvicesAndAdvisorsForBean() : object[]+isMatch() : Boolean+afterPropertiesSet()

RdbmsBeanNameAutoProxyCreatorBeanNameAutoProxyCreator

+AopBeanNames()+mapRow() : object

AopBeanNames

MappingSqlQuery

1

1

Page 14: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

管理系统的设计用户浏览器

WEB 服务器 用户身份认证

ACEGI 过滤器访问控制

权限控制管理系统

数据库

验证成功

状态数据读取 / 更新

基本表管理

用户名、密码

验证失败跳转错误页面

HTTP 请求

返回响应

会话过程

终端 Web 服务器 基于 RBAC 和 ACEGI 技术的权限管理

系统的总体概述

Page 15: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

管理系统的设计

用户权限控制管理系统的总功能图

Page 16: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

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 技术的用户权限控制管理系统

Company Logo

管理系统的实现

web 层 WebWork

ActionServlet

ActionJSP

业务层 Spring

Spring IoC

持久层 Hibernate

Hibernate DAO

PO

数据库

系统架构图

Page 18: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

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 技术的用户权限控制管理系统

Company Logo

管理系统演示界面

系统登录界面登录后主页面资源管理页面添加 URL 资源页面成功添加 URL 资源页面用户 / 权限管理页面 编辑角色页面 用户管理页面

Page 20: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

管理系统的应用提供了 ACEGI 扩展包 rbac_acegi.jar 在 SSH 架构应用中配置同 ACEGI 配置相似

配置 web.xml 的代码段

Bean 配置

Page 21: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

管理系统的应用

ACEGI 扩展部分的配置

缓存配置objectDefinitionSource 配置拦截器配置

代理配置

Page 22: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

管理系统的应用 测试项目权限配置

Page 23: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

管理系统的应用——测试项目演示

主页页面点击“显示用户”,无权访问的错误页面用户 www 登录后主页页面再次点击“显示用户”,出现用户列表页面用户 www 查看新闻页面

Page 24: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

总结

针对 ACEGI 权限管理的不足,对其进行扩展使它配置信息不是直接写入配置文件,而是通过配置从数据库读取信息,能达到动态管理要求

针对现阶段流行的框架,开发设计出一个对基于 SSH 框架通用的权限控制管理系统, SSH 框架的应用能够利用管理系统进行自身的用户权限控制的管理

该系统基本完成了毕业设计的要求,当然还存在不足有待改善

Page 25: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统

Company Logo

致谢最后,感谢我的指导老师熊丽荣老师,感谢你一

直以来对我们的信任与支持,在毕业设计阶段一直关心我们的进度,能够安排一周一次的会面与讨论,为我们提供参考意见。

Page 26: 基于 RBAC 和 ACEGI 技术的用户权限控制管理系统