自定义权限控制
1 权限控制概述
1.1 权限控制定义
当前系统要求不同的用户针对不同的菜单及操作应该有不同的权限。比如管理员可以操作精选题库列表
及相应的审核操作,如果是普通录入人员,只能操作基础题目菜单及题库录入的接口。所以精选题库及
题目审核必须具有该权限的用户才可以操作,如果登录用户没有这个权限,系统应提示用户。
权限具体是什么,权限在系统中就是一个字符串标识,标识系统的每个功能动作,比如题目新增
(QUESTION_ADD)、题目删除、题目修改、题目列表获取(QUESTION_LIST),题目审核等。每个用
户的权限,是通过角色来汇集,一个角色可以包含多个权限,一个用户可以有多个角色,比如定义了管
理员角色(ROLE_ADMIN)或题目录入角色(ROLE_QUESTION_RECORDER)。这套基于权限角色的
控制系统,实际是权限控制模型RBAC模型。
1.2 权限控制模型
基于角色的权限访问控制(Role-Based Access Control),在RBAC中权限与角色相关联,用户通过成
为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了
完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色
被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角
色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。
实现最终的权限控制,需要有一套表结构支撑,最基本的表包含用户表t_user、权限表t_permission、
角色表t_role、用户角色关系表t_user_role、角色权限关系表t_role_permission五张表。有的系统还需
要菜单及菜单关系表,当前系统的菜单相对稳定,故暂时不需要动态实现。
2 权限控制分析
2.1 实现思路
2.2 文件配置
2.3 注解配置