来一起学SpringSecurity:④面向持久化的用户认证示例-前期准备(搭建项目骨架)
一,项目环境
- SpringBoot2.2.8
- SpringSecurity
- Gradle
- Mysql
随便一说:开发工具用Manjaro
i3wm
下的VSCode
,有点香
二,数据库表字段及建表相关操作
- 用户id,
- 用户名,
- 密码,
- 手机号,
- 账户锁定状态,
- 用户使用状态,
- 用户创建时间,
- 用户最后登录时间
(当前示例还没涉及用户权限相关内容哦,预告)
建库语句
CREATE DATABASE /*!32312 IF NOT EXISTS*/`fisha_demo` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
建表语句
CREATE TABLE fisha_demo.fisha_user (
`user_id` bigint(20) NOT NULL COMMENT '用户id,mybatis_plus雪花算法',
`account` varchar(50) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '用户账号',
`password` varchar(255) DEFAULT NULL COMMENT '用户加密密码',
`phone` varchar(20) DEFAULT NULL COMMENT '手机号码(国际国内)',
`locked` tinyint(2) DEFAULT '1' COMMENT '账户是否被锁定。1没被锁,2被锁(用户登录次数超出限制后会被锁定)',
`deleted` tinyint(2) unsigned DEFAULT '1' COMMENT '账户状态。1正在使用,2被逻辑删除',
`gmt_created` datetime DEFAULT NULL COMMENT '注册时间',
`gmt_modified` datetime DEFAULT NULL COMMENT '最后活跃时间',
PRIMARY KEY (`user_id`) COMMENT '主键索引'
)
ENGINE=InnoDB
DEFAULT CHARSET=utf8
COMMENT='fisha用户实例表';
授权相关
项目使用的数据库用户密码为:java just1508,该用户拥有fisha_demo库所有的操作权限
create user 'java'@'localhost' identified by 'just1508'
grant all privileges on fisha_demo.* to 'java'@'localhost'
三,项目骨架
https://gitee.com/shafish/demo/tree/fisha_demo
骨架完成commits id为:3030819
目录说明
├── build.gradle
├── db
│ └── 数据库设计.md # 数据库说明文档
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── HELP.md
├── settings.gradle
└── src
├── main
│ ├── java
│ │ └── cn
│ │ └── shafish
│ │ └── fisha_demo
│ │ ├── config # 项目java配置类相关
│ │ ├── controller
│ │ ├── DemoApplication.java
│ │ ├── mapper
│ │ ├── pojo
│ │ │ ├── dto # 接收与响应相关bean
│ │ │ └── entity # 数据库实体
│ │ ├── service
│ │ │ └── impl
│ │ └── util
│ └── resources
│ ├── application.yml #SpringBoot配置文件
│ ├── mapper
│ │ └── FishaUserMapper.xml
│ ├── static
│ └── templates
└── test
└── java
└── cn
└── shafish
└── fisha_demo
└── DemoApplicationTests.java
其中最重要的为config
目录中的配置类和application.yml
配置文件,其中有注释,项目可以直接下载本地运行(已配置swagger)
下一章-->自定义用户登录认证过滤器