RBAC权限控制
Posted strandtrack
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RBAC权限控制相关的知识,希望对你有一定的参考价值。
为什么要进行权限控制?
因为一个系统需要的不同级别,当没有权限控制,你的所有功能完全不设防,这是不符合要求的,也是不合理的?
怎么进行权限控制?
1.先定义资源
定义受保护的资源,比如你的handler方法,service方法,一些静态资源等
2.创建权限
一个一个控制太复杂了,也太麻烦了。所以可以直接创建权限,给这个权限操作某些资源的权力,然后可以把这个权限授予给某个人
3.创建角色
比如创建管理员角色,赋予它增删改查的权力,让他能够管理普通用户。在比如创建普通用户角色,赋予它查的权力,让他能够查看资源。
4.管理用户
5.建立关联关系
权限→资源:单向多对多
Java 类之间单向:从权限实体类可以获取到资源对象的集合,但是通过资 源获取不到权限
数据库表之间多对多: 一个权限可以包含多个资源 一个资源可以被分配给多个不同权限
角色→权限:单向多对多
Java 类之间单向:从角色实体类可以获取到权限对象的集合,但是通过权 限获取不到角色
数据库表之间多对多: 一个角色可以包含多个权限 一个权限可以被分配给多个不同角色
用户→角色:双向多对多
Java 类之间双向:可以通过用户获取它具备的角色,也可以看一个角色下 包含哪些用户
数据库表之间: 一个角色可以包含多个用户 一个用户可以身兼数职。
RBAC权限模型
1.概念:
鉴于权限控制的核心是用户通过角色与权限进行关联,所以前面描述的权限控制系 统可以提炼为一个模型:RBAC(Role-Based Access Control,基于角色的访问控制)。 在 RBAC 模型中,一个用户可以对应多个角色,一个角色拥有多个权限,权限具体 定义用户可以做哪些事情
2.RBAC分级:
RBAC0-RBAC3
3.RBAC框架
主要是SpringSecurity和shiro
shiro是轻量级的,SpringSecurity是重量级的,功能更多。
以上是关于RBAC权限控制的主要内容,如果未能解决你的问题,请参考以下文章