SpringBoot通过注解实现权限控制,每一个增加权限注解的API,都会严格校验权限。
在RBAC(Role-based access control)设计中,一般有用户表、角色表、权限表,用户表和权限表通过中间角色表关联起来,二者一般不直接关联。
在简单的场景中,可以不使用权限表,直接通过角色口头或文档约定其权限,前后端也只通过角色判断权限操作。
在复杂场景中,或者权限很细的场景中,必须使用权限表,前后端主要通过权限字符串判断权限操作,角色主要作用是关联了二者的数据,但大多时候不被直接使用判断权限操作。
权限操作过程中,后端通过权限接口返回用户所有的权限信息,如角色、权限字符串,甚至权限菜单等。前端在权限事件触发前,都需要校验用户是否具备权限,一种是不具备权限则不显示,另一种是不具备权限提交被打回。当前端请求到后端后,后端API上已注解需要的权限,控制层之前的过滤器会校验用户是否具备此权限,如具备则放行,否则拦截返回,提示权限不足等错误。
more >>