1.什么是RBAC
基于角色的访问控制(Role-Based Access Control)
2.原理
管理员--组--权限
![](https://app.yinxiang.com/shard/s33/res/52a98173-f1c0-4581-91c1-aa6b4ebfd91c.png)
3.数据表设计
管理员表
![](https://app.yinxiang.com/shard/s33/res/7cf2cb13-d432-4038-bef6-798d7a33d127.png)
角色表
![](https://app.yinxiang.com/shard/s33/res/58cdf00f-b69e-4f2a-894a-a26978f4efdd.png)
![](https://app.yinxiang.com/shard/s33/res/76194e5e-2f75-4b00-9f22-5d2ba0f390e2.png)
权限表
![](https://app.yinxiang.com/shard/s33/res/b883b7e5-6a2a-42a9-a68b-f28c58492f47.png)
![](https://app.yinxiang.com/shard/s33/res/fb1155a2-bfc4-473b-af49-0754502b0426.png)
4.管理员根据自己角色显示对应权限
![](https://app.yinxiang.com/shard/s33/res/02642800-904b-4fe2-878d-157fda106ca7.png)
![](https://app.yinxiang.com/shard/s33/res/924a7f31-3678-4a82-b1fe-a584114c0389.png)
5.管理员管理, 角色管理, 权限管理
管理员管理包括分配角色
角色管理包括分配权限
权限管理包括增删改查
![](https://app.yinxiang.com/shard/s33/res/f10ed6bb-7fd0-4f26-b52c-a8db4833818c.png)
6.FQ访问控制
(管理员的角色不具有某个权限,但是管理员通过输入指定url进而可以访问到不属于他的权限,要对FQ访问进行控制)
加一个CommonController, 所有的控制器均继承该公共控制器
![](https://app.yinxiang.com/shard/s33/res/4fa75764-7d05-4a06-9532-e176449e1671.png)
CommonController
![](https://app.yinxiang.com/shard/s33/res/83577ca2-c9a2-48b0-b73b-371928c31221.png)
CommonModel
![](https://app.yinxiang.com/shard/s33/res/d52edf42-63c2-4133-a965-12b7bf32ece5.png)
7.总结
设计好管理员, 角色, 权限数据表 并写出相应的管理模块(增删改查)
首先管理员登录系统后, 根据角色ID查出相应权限, 显示对应的功能菜单
设计一个CommonController, 普通Controller extends CommonController, 在CommonController中对用户的操作进行权限判断
以上文章转载他人,时间比较久,所以没有备注原创链接,望谅解!