简介
RBAC 中文名称:基于角色的访问控制
作用:实现访问控制
核心:角色
英文名称:(Role-BasedAccess Control)
解释:一种思想.根据RBAC思想进行数据库设计,根据数据库设计更好的完成权限控制。
权限控制常用分类:
菜单功能:
- url控制(控制访问不同的控制器.)
- 资源可见性控制(页面某些元素对不同用户可见性是不同的)
一、需求
新增一个用户,具有所有菜单可见的功能
- 新建一个用户.
- 在用户-菜单关联表中把所有菜单和用户关联
二、使用rabc思想进行设计
如果需求确定每个用户只能有一个角色,在用户表中添
加外键列,直接应用角色表
如果每个用户可能有多个角色,按照下面进行设计.
需求:新增一个用户,具有所有菜单可见的功能.
- 项目上线时已经创建了n个角色,且不同角色可能
看不同的菜单。 - 在用户-角色表中添加用户和角色的关系
1.图片展示
2.数据库设计(添加了角色管理)
把角色和菜单联系到一起
3.代码设计
pojo类设计
页面设计
Controller层
(controller–>service–>mapper核实用户是否存在),在service层调用完mapper层查找到用户之后,在调用另一个根据角色id查找相对应的目录
Service层
Mapper层
4.根据角色不同按钮不同
首先,我们要把按钮与角色牵扯上关系(与之前一样)
新建一个按钮表(grant表示一个按钮的代号)
在创建角色与按钮关联表
添加pojo
用户中添加
然后写根据角色rid查找相对应的mapper
在用户登录开始验证的代码中添加elements的注入
最后在main.jsp中用foreach语句循环 if判断(如果是grant就拥有此按钮)