基于rbac权限控制模型的管理系统的设计与实现(代码片段)

XiuYan XiuYan     2023-02-15     276

关键词:

文章目录


一、RBAC 权限设计

1.1 模型概述

  基于角色的访问控制 RBAC,是实施面向企业安全策略的一种有效的访问控制方式。
  其对系统操作的各种权限 不是 直接授予具体的用户,而是在用户集合与权限集合之间 建立一个角色集合,每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限
  这样做的好处是:不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理,减少系统的开销。

(以上来源于百度)


简单理解就是,将用户、角色、权限之间建立一种关系,当为用户赋权时,可用通过角色来间接赋权。

如:一个用户的角色是系统的管理员,他拥有对一张表的增删改查,另一个用户是普通的管理员,他就只有这张表的查询权限等,再一个用户他即是系统管理员又是普通管理员,那么他拥有两种角色的所有权限。


1.2 模型分类

RBAC0 模型

  RBAC0 模型,是最简单、最原始的模型。
  模型将用户、角色和权限用最简单的方式连接起来。用户在使用一个功能的时候,可以认为他发起了一个会话 (session),而个 session 对应一个角色,但一个角色可以对应多种权限。换言之,用户和角色是多对一关系,即:一个用户只对应一个角色,一个角色可以对应多个用户。


RBAC1 模型

  RBAC1 模型中,引入了继承的概念。
  子角色可以继承父角色的权限,父角色的权利大于子角色,并且为角色进行了分层。
  例如:一个企业中,数据管理员可以对清单数据、定额数据都进行管理。但是他的子角色是只有一部分人只能管理清单数据,另外一部分人只能管理定额数据。


RBAC2 模型

RBAC2 模型中,在 RBAC0 模型的基础上,引入了静态职责分离和动态职责分离两种概念。

静态职责分离:
  ① 用户的角色是有限制的,不能赋予所有角色。
  ② 用户想要获得高级的权限,就一定有低级的权限。
  ③ 用户在互斥的角色中只能选择一个。
动态职责分离:
  ① 用户可以有多个角色,但是一次只能激活一个。


RBAC3 模型

RBAC3 模型是 RBAC1 和 RBAC2 模型的结合,需要同时考虑角色分层和角色设置之间的互斥关系。


二、基于RBAC的后台管理系统

2.1 项目概述

  该项目主要展示 RBAC 的权限控制效果,并提供员工管理模块以供测试。用户登录系统后,根据用户所关联的角色,查询角色拥有的权限,如:菜单权限、按钮权限。不同角色的用户,所显示的菜单可能也不尽相同。

  系统管理模块主要有三个子模块,分别是:用户管理模块、角色管理模块和权限管理模块。三个模块中,管理员除了对于信息的基本管理以外,还可以对用户进行角色的分配,对角色进行权限的设置,以实现动态修改用户的权限信息(菜单和按钮)。

项目亮点:
 ① 系统除采用 RBAC 模型进行访问控制以外,还配合 Shiro 框架完成系统的鉴权机制,其中 RBAC 负责左侧菜单级别权限, Shiro 负责按钮级别权限。
 ② 系统对于添加修改相关操作采用 Validator 完成表单参数的校验,还会对于取值唯一的数据段进行业务校验,完善业务流程。
 ③ 系统应用 Hutool 工具类,配合完成数据的批量导出与导入工作。
 ④ 系统使用 Lombok 框架,以简化实体对象中常用方法的构建。
 ⑤ 系统设置 自定义业务异常类 ,配合 业务消息枚举类业务结果包装类 ,利用 全局异常处理器 处理, 使业务异常的不友好界面不会展示到客户端,以此提高用户的交互体验。


2.2 技术选型

前端:

  • Layui:采用经典的模块化的前端框架,系统采用 2.5.6 版本。
  • Layuicms:基于 Layui 的后台管理模板,系统采用 layuicms2.0 版本。

后端:

  • Spring:构建系统核心逻辑的后端框架,系统采用 5.2.0 版本。
  • SpringMVC:请求驱动类型的轻量级 web 框架,系统采用 5.2.0 版本。
  • Mybatis:连接数据库的框架,系统采用 3.5.6 版本。

数据库:

  • MySQL:项目的数据库,系统采用 8.0.31 版本。
  • Druid:数据库的连接池,系统采用 1.2.3 版本。

开发环境:

  • IntelliJ IDEA :项目后端的开发工具,使用版本为 2022.3.1。
  • JDK:Java 的开发环境,使用版本为 1.8。
  • Maven:后端项目的打包工具,使用版本为 3.8.6。
  • Tomcat:本地服务器,使用版本为 9.0.70。

2.3 内部处理流程

  添加或修改数据信息时,客户端发起请求,服务器首先进行对请求的发起者进行认证,通过后再对数据和业务进行校验,最后再进行底层的数据操作,具体流程如下:


注:业务校验如:工号手机号不可重复等


2.4 功能模块展示

管理员在登录界面在输入用户名和密码后,并通过滑动验证,即可进入到系统后台。系统后台的登录界面如图

  在系统管理模块的用户管理界面,管理人员可以根据条件查询操作,还可以对系统用户进行添加、删除、修改、重置密码以及设置角色等操作,管理界面、修改用户信息界面和设置角色界面如下图所示:


  在角色管理界面,管理员可以通过名称条件查询角色,还可以新增角色、修改人员、删除角色以及设置角色的权限等。角色管理界面和分配权限界面如下图所示:


  在权限管理界面,左侧是后台系统权限的树形列表,右测是权限信息管理的表格。管理人员能实现通过名称和类型进行条件查询,还可以进行新增、删除以及编辑等操作。其中,默认一级菜单的父ID为0,权限管理界面如图所示:

  员工信息管理界面是提供测试的界面,界面实现条件查询、添加、修改和删除。其中,删除可以批量删除也可以单条删除,添加实现批量导入,也可以批量导出当前条件下的所有数据。员工信息管理界面如下图所示:


2.5 权限控制展示

  用户 “万能张三” 所的角色是信息管理员,信息管理员所拥有的菜单权限有:信息管理、员工管理,按钮权限有:新增员工、导出员工和修改员工,如下图所示:

“万能张三” 用户登录后,系统只展现其拥有的菜单权限和按钮权限,如下图所示:


2.6 下载说明

下载本系统代码的用户,必须同意以下内容,否则请勿下载。

  1. 出于自愿而使用本文,了解引用本文的风险,且同意自己承担引用本文的风险。
  2. 利用本文内容构建的任何信息内容以及导致的任何版权纠纷和法律争议及后果和作者无关,作者对此不承担任何责任。
  3. 在任何情况下,对于因引用本文而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),作者概不承担任何责任。
  4. 必须了解使用本软件的风险,作者不承担任何因本软件而产生的难以预料的问题的相关责任。

下载链接:https://download.csdn.net/download/weixin_43819566/87392802

rbac从入门到精通

...实现参考RBAC介绍,案例讲解基于RBAC模型的通用权限管理系统的设计(数据模型)的扩展扩展RBAC用户角色权限设计方案什么是RBAC权限系统与RBAC模型概述RBAC用户、角色、权限、组设计方案基础平台项目之树形菜单权限配置实 查看详情

b端产品之权限设计(rbac权限模型)

...渐崛起,很多企业管理中使用的软件我们通常称其为B端管理系统,而在B端系统中“权限管理”是必不可少的功能,不同的系统中权限的应用复杂程度不一样,都是根据实际产品以及需求情况而设置合理的权限。而我们现在对于... 查看详情

权限设计系统——rbac

...sedAccessControl)是一套很成熟的权限设计模型。是一个基于角色所控制的系统࿰ 查看详情

用户权限管理数据库设计(rbac)

 RBAC(Role-BasedAccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角... 查看详情

rbac基于角色的访问控制

RBAC(Role-BasedAccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色... 查看详情

rbac基于角色的访问控制

RBAC(Role-BasedAccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色... 查看详情

rbac模型的概念及技术实现

RBAC是Role-BasedAccessControl的缩写,含义为基于角色的访问控制模型,此模型是20世纪90年代在美国第十五届全国计算机安全大会上提出的,后逐步被业界广泛使用,至2004年形成了ANSI/INCITS标准。时至今日,RBAC访问控制模型已经渗入I... 查看详情

rbac用户角色权限设计方案转载

RBAC(Role-BasedAccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户... 查看详情

基于角色的访问控制(rbac)权限管理

  RBAC(Role-BasedAccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,... 查看详情

rbac用户权限管理数据库设计

...类: RBAC权限设计 RBAC RBAC(Role-BasedAccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成"用户-角色-权限"的授权模型。 查看详情

基于ssm框架的rbac权限系统设计与实现(附源码论文)

摘要鉴于信息科技的发展,信息管理系统已应用于社会的方方面面,尤其是对于拥有大量信息数据的组织和企业,作用更为突出。但是,随着工作内容的扩大,涉及的信息和人员数量增加,导致维护安全系... 查看详情

你知道权限管理的rbac模型吗?

...,可以说一个成熟的后端系统离不开一个比较完善的权限管理系统。权限管理的方式RBAC模型RBAC模型(Role-BasedAccessControl:基于角色的访问控制)模型是比较早期提出的权限实现模型,在多用户计 查看详情

你知道权限管理的rbac模型吗?

...,可以说一个成熟的后端系统离不开一个比较完善的权限管理系统。权限管理的方式RBAC模型RBAC模型(Role-BasedAccessControl:基于角色的访问控制)模型是比较早期提出的权限实现模型,在多用户计 查看详情

springsecurity----rbac权限控制模型,和权限相关知识点整理(代码片段)

...l)、强制访问控制(MAC:MandatoryAccessControl)、基于属性的权限验证(ABAC:Attribute-BasedAccessControl)等。最 查看详情

rbac权限管理

RBAC(Role-BasedAccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色... 查看详情

rbac权限管理

  基于角色的访问控制(Role-BasedAccessControl)就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角... 查看详情

[linux之权限管理⽤户组管理](代码片段)

...限管理用户组管理RBAC权限管理RBAC(Role-BasedAccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型... 查看详情

rbac权限控制(代码片段)

...库登陆6、动态权限角色拦截  什么是RBAC权限模型r基于角色的权限访问控制(Role-BasedAccessControl)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适... 查看详情