一、环境要求:
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...

03-05 21:55