RBAC是什么
RBAC(Role-Based Access Control),基于角色的访问控制。
在业务处理中,经常会涉及多用户组的权限大小问题。举个例子的话,现在为多数公司所使用的gitlab仓库管理系统,其优于github的一大特点就是对团队内的各角色组进行权限管理。比如新入职的实习生,由于公司信息保密以及项目安全问题,是不能让其看到公司项目的全部代码的。而项目组的核心成员,由于项目中类与类相关度高,需要每个文件都有访问权限。
于是
基于RBAC思想进行角色权限设计 实习生所能访问到的资源被限制,而项目核心成员所能访问到的资源则相对来说更多。
实战(RBAC with shiro security framework)
首先明白其实体之间的关系
一个用户只能属于一个角色(role/用户组),一个角色可以包含多个用户。(用户-角色表一对多)
一个角色可以访问多个权限,而一个权限可以被多个角色所访问。(用户-权限表多对多)
一个权限对应能够访问对应的API或url资源。
于是设计表
用户表,角色表,权限表,用户-角色关联表,角色-权限关联表
类的设计
(@table用于实体类名与数据库表名不同的情况进行注解)
shiro权限控制以及加密
实现的效果
用户权限(小)
而有管理员权限(用户组)的用户,访问delete页面时,则会正常进入