Shiro中的权限控制(二)

时间:2021-03-18 15:25:38

Shiro中的权限控制(二)

权限设计基于RBAC3的结构,即权限赋予角色,角色赋予用户的结构。如下图:
Shiro中的权限控制(二)

RBAC是什么?

RBAC  是基于角色的访问控制(Role-Based Access Control )在 RBAC  中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。

RBAC介绍。

RBAC  认为授权实际上是Who 、What 、How 三元组之间的关系,也就是Who 对What 进行How 的操作,也就是“主体”对“客体”的操作。

Who:是权限的拥有者或主体(如:User,Role)。

What:是操作或对象(operation,object)。

How:具体的权限(Privilege,正向授权与负向授权)。

然后 RBAC  又分为RBAC0、RBAC1、RBAC2、RBAC3 ,如果你不知道他们有什么区别,你可以百度百科:百度百科-RBAC 估计你看不懂。还是看看我的简单介绍。

我这里结合我的见解,简单的描述下(去掉那么多的废话)。

RBAC0、RBAC1、RBAC2、RBAC3简单介绍。

  • RBAC0:是RBAC的核心思想。
  • RBAC1:是把RBAC的角色分层模型。
  • RBAC2:增加了RBAC的约束模型。
  • RBAC3:其实是RBAC2 + RBAC1。

RBAC0,RBAC的核心。

Shiro中的权限控制(二)

RBAC1,基于角色的分层模型

Shiro中的权限控制(二)

RBAC2、是RBAC的约束模型。

Shiro中的权限控制(二)

RBAC3、就是RBAC1+RBAC2

Shiro中的权限控制(二)

估计看完图后,应该稍微清楚一点。

下面来看个Demo。员工权限设计的模型图,以及对应关系。

Shiro中的权限控制(二)

关系图,以及实体设计。

Shiro中的权限控制(二)

表设计

Shiro中的权限控制(二)

下面发布一篇基于RBAC3 的设计模型,设计的 Shiro  SpringMVC  Mybatis   Demo