关于为什么要自己写一套权限管理系统的原因?
- 满足框架的要求进行配置
- 没有界面操作和查看
- 期望更细致的管理
目前笔者所在的公司,项目中所使用的权限管理系统并不是使用SpringSecurity 或者 SpringShiro 这套框架,其中原因:既有以上的三个原因,也有最重要的一点,这两个框架对开发人员并不是很友善,也因此,项目中使用的自己开发的权限管理。而本人便是该权限管理系统的主要开发人员,不过由于项目权限体系的需求原因,所以学习慕课某课程,深入了解权限管理的核心,提高相应的能力。
一、权限管理项目需开发的内容
配置管理类功能
权限拦截类功能
辅助类功能: 缓存(Redis)、各种树结构生成
二、功能构成:
1、配置管理类功能:
- 用户、权限、角色的管理界面(扩展用:部门、权限模块)
- 角色 - 用户管理、角色-权限管理
- 权限更新日志管理
2、权限拦截类功能:
- 在切面(Filter)做权限拦截
- 确定用户是否拥有某个权限
3、辅助类功能:
- 缓存(Redi)的封装和使用
- 各种树:部门树、权限模块树、角色权限树、用户权限树
- 权限操作恢复
三、详细表结构设计
设计规范:
每个表都有自己的主键;
字段尽量定义为NOT NULL;
尽量为每个字段添加备注;
数据库字段统一小写,单词之间使用下划线分隔;
使用InnoDB存储引擎;
可以使用varchar的字段尽可能不使用 TEXT、BLOB类型;
表字符集选择 UTF8
详细表结构设计:
1、部门表
2、用户表
3、权限模块表
4、权限表
5、角色表
6、角色用户关联表
7、角色-权限关联表
8、权限相关更新记录表
注意:
datetime类型只支持Mysql5.6.5以上版本。
以下的版本将 datetime 换成 TIMESTAMP 即可。