SpringBoot实战电商项目mall(30k+star)地址:github.com/macrozheng/…
权限控管理作为后台管理系统中必要的功能,mall项目中结合Spring Security实现了基于路径的动态权限控制,可以对后台接口访问进行细粒度的控制,今天我们来讲下它的后端实现原理。
学习本文需要一些Spring Security的知识,对Spring Security不太了解的朋友可以看下以下文章。
权限管理相关表已经重新设计,将原来的权限拆分成了菜单和资源,菜单管理用于控制前端菜单的显示和隐藏,资源管理用来控制后端接口的访问权限。
其中
ums_admin
、ums_role
、ums_admin_role_relation
为原来的表,其他均为新增表。
接下来我们将对每张表的用途做个详细介绍。
后台用户表,定义了后台用户的一些基本信息。
create table ums_admin ( id bigint not null auto_increment, username varchar(64) comment '用户名', password varchar(64) comment '密码', icon varchar(500) comment '头像', email varchar(100) comment '邮箱', nick_name varchar(200) comment '昵称', note varchar(500) comment '备注信息', create_time datetime comment '创建时间', login_time datetime comment '最后登录时间', status int(1) default 1 comment '帐号启用状态:0->禁用;1->启用', primary key (id) ); 复制代码
后台用户角色表,定义了后台用户角色的一些基本信息,通过给后台用户分配角色来实现菜单和资源的分配。
create table ums_role ( id bigint not null auto_increment, name varchar(100) comment '名称', description varchar(500) comment '描述', admin_count int comment '后台用户数量', create_time datetime comment '创建时间', status int(1) default 1 comment '启用状态:0->禁用;1->启用', sort int default 0, primary key (id) ); 复制代码
后台用户和角色关系表,多对多关系表,一个角色可以分配给多个用户。
create table ums_admin_role_relation ( id bigint not null auto_increment, admin_id bigint, role_id bigint, primary key (id) ); 复制代码
后台菜单表,用于控制后台用户可以访问的菜单,支持隐藏、排序和更改名称、图标。
create table ums_menu ( id bigint not null auto_increment, parent_id bigint comment '父级ID', create_time datetime comment '创建时间', title varchar(100) comment '菜单名称', level int(4) comment '菜单级数', sort int(4) comment '菜单排序', name varchar(100) comment '前端名称', icon varchar(200) comment这篇关于手把手教你搞定权限管理,结合Spring Security实现接口的动态权限控制!的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!