一、环境要求:
jdk8 、安装了且配置了maven 、安装了msql
二、项目代码
1、导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
emm ,导入依赖后直接启动访问接口会弹出一个表单要你输入,
用户名为:user
密码为:在控制台看
2、创建数据库
员工信息库
CREATE TABLE `tb_sys_employee` (
`id` varchar(20) NOT NULL COMMENT '员工id',
`name` varchar(100) NOT NULL COMMENT '真实姓名',
`phone` varchar(50) NOT NULL COMMENT '电话号码',
`card` varchar(20) NOT NULL COMMENT '身份证号码',
`password` varchar(40) NOT NULL COMMENT '密码(密文)',
`code` varchar(64) NOT NULL COMMENT '工号',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态0 停用 1:启用',
`nick_name` varchar(100) NOT NULL COMMENT '工号名称',
`salt` varchar(8) NOT NULL COMMENT '盐',
`address` varchar(64) DEFAULT NULL COMMENT '住址',
`create_name` varchar(64) DEFAULT NULL COMMENT '创建人',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`role` int(6) DEFAULT '1' COMMENT '1 admin 2、employee 4、user',
`avatar` varchar(256) DEFAULT NULL COMMENT '头像',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='员工表';
角色库
CREATE TABLE `tb_sys_role` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色id',
`NAME` varchar(40) NOT NULL COMMENT '角色名称',
`code` varchar(64) NOT NULL,
`REMARK` varchar(400) DEFAULT NULL COMMENT '角色描述',
`STATUS` varchar(1) NOT NULL COMMENT '角色状态 0:停用 1:启用',
`CREATE_USER_ID` varchar(20) DEFAULT NULL COMMENT '创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATE_USER_ID` varchar(20) DEFAULT NULL COMMENT '更新人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
`ROLETYPE_ID` bigint(20) NOT NULL COMMENT '角色类型ID',
`IS_ADMIN` varchar(1) DEFAULT '0' COMMENT '1:管理者角色 0:不是管理者角色',
PRIMARY KEY (`ID`) USING BTREE,
KEY `IDX_SYS_ROLE_ROLETYPE_ID` (`ROLETYPE_ID`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='角色表';
资源库:即url库
CREATE TABLE `tb_sys_permission` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`url` varchar(30) DEFAULT NULL COMMENT 'url字符串',
`status` tinyint(4) DEFAULT '1' COMMENT '状态:0 否 1 是',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
资源角色关联库
CREATE TABLE `tb_sys_role_permission` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`permission_id` bigint(20) DEFAULT NULL COMMENT '资源文件id',
`role_id` bigint(20) DEFAULT '1' COMMENT '角色id',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
说明:
1、用户名:用例中在整合jwt中使用的是 nick_name 作为账号,
2、密码加密方式使用的是:EncryptionUtil.SHA1(EncryptionUtil.SHA1(employee.getPassword())+salt)
3、使用了mybatis-plus来进行数据库方面操作
参考说明,security系列大多参考下面两位大佬:https://gitee.com/fakerlove/s...