[发明专利]基于改进RBAC模型及Spring Security框架的动态权限管理系统有效
申请号: | 201811535280.0 | 申请日: | 2018-12-14 |
公开(公告)号: | CN109688120B | 公开(公告)日: | 2020-11-03 |
发明(设计)人: | 徐新民;韩刚强;吴东宇;尚丽娜 | 申请(专利权)人: | 浙江大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08;H04L12/24 |
代理公司: | 杭州天勤知识产权代理有限公司 33224 | 代理人: | 王琛 |
地址: | 310013 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 改进 rbac 模型 spring security 框架 动态 权限 管理 系统 | ||
1.一种基于改进RBAC模型及Spring Security框架的动态权限管理系统,其特征在于:该系统根据实际应用通过对RBAC模型进行改进,抽象出角色概念,针对不同的角色赋予不同的权限;当需要为一个新用户分配权限时,赋予该新用户某些角色,使得该新用户具有相应的权限;
系统根据实际应用对RBAC模型进行改进,主要包括以下三部分:①将RBAC模型中的用户组模块和角色模块进行合并;②将RBAC模型的冗余权限分类进行剪除;③添加用户额外权限关联表和用户屏蔽权限关联表;其中:
将RBAC模型中的用户组模块和角色模块进行合并,具体地:使用户到用户组的多对多关系以及用户组到角色的多对多关系通过用户到角色的多对多关系来等价,将用户组概念去除,保留角色的概念;同时让角色拥有继承特性,即父角色拥有子孙角色的权限,一个用户拥有了父角色,则该用户不但被赋予了父角色的权限,同时也被赋予了该父角色的子孙角色的权限;
将RBAC模型的冗余权限分类进行剪除,即考虑到现行主流的Spring、Spring MVC、MyBatis三大框架的Web系统中,所有的用户请求都会通过控制器进行请求分发,因此只需要在控制器层面对网站资源进行管理即可,结合Spring Security框架的资源标注功能,实现动态权限管理;
添加用户额外权限关联表和用户屏蔽权限关联表,用户额外权限关联表和用户屏蔽权限关联表分别记录每个用户特有的权限和排除的权限;确定用户最终的权限时,首先获取用户所拥有的角色集合,然后将子角色也加入到角色集合中,直到所有的子孙角色都加入到角色集合中;求出角色集合中的角色拥有的权限,并放入权限集合中;将用户额外权限表中用户对应的权限加入到权限集合中,将用户屏蔽权限表中用户对应的权限从权限集合中去除,最终得到的权限集合就是用户最终的权限;
所述动态权限管理系统包括:
Spring模块,其作为整个软件的容器,用于整合所用到的各个框架,实现依赖反转,管理整个软件的框架;
Spring Security模块,用于标记网站资源,拦截用户请求,计算用户权限,决策用户是否能进行相关操作;
数据库管理模块,用于存储用户数据、角色数据、权限数据、用户角色多对多数据、角色权限多对多数据、特殊用户权限数据,支持存储数据的增删查改;
MyBatis模块,用于管理数据库,封装底层数据库访问接口,为上层服务提供DAO;
Spring MVC模块,用于接受用户请求、请求分发、业务逻辑调用、视图解析以及请求响应,其为一个网页开发框架并以MVC的思想架构网页,使得各层分工明确,各个模块解耦且内聚;
Web网页模块,用于为各个业务提供网页视图文件,接受Spring MVC模块的调用后将Web网页呈现在用户面前;
所述Web网页模块通过构造生成角色层次树用以动态生成HTML页面文件并显示,其首先需要设计树的节点类,主要包含两个属性:对应的角色信息、拥有的子节点集合;然后使用哈希队列通过广度优先搜索算法来构造角色层次树,具体地:
(1)将根角色对象加入哈希队列,并使用根角色对象构建角色层次树的根节点;
(2)循环执行以下操作,直到队列为空;
2.1从队列头部中取出一个元素即一个角色对象;
2.2从数据库中查找以该角色为父角色的角色集合,并加入到队尾;
2.3在队列中查找所取出的角色对象的父对象所在位置,并将该角色加入到其父角色所在节点的子节点集合元素中;
(3)返回角色层次树的根节点;
最后根据返回的根节点使用深度搜索算法配合JQuery,动态生成HTML代码,具体实现过程中使用了JQuery的append()方法,根据深度搜索得到的结果,迭代地向ul中添加li节点,进而向li节点中添加子ul列表,同时使用JS和CSS来实现菜单的折叠。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811535280.0/1.html,转载请声明来源钻瓜专利网。