1. 初始化SpringBoot
1.1 创建SpringBoot项目
清理spring-boot-starter-test,有需要的可以留着
1.2 application.properties
将application.properties改为yaml,个人习惯问题,顺便设置端口8888,和前端设置的一样
server:port: 8888spring:application:name: springboot-api
2. 鉴权体系及数据库连接
鉴权体系使用 JWT + security
数据库连接使用 MySQL + mybatis-plus
相比 Spring Boot 2.x , Spring Boot 3.x 中,很多方法进行了调整,所以很多写法和2.x中是不一样的,如:
- Spring Boot 3.x 中,WebSecurityConfigurerAdapter 已经被弃用,取而代之的是使用 SecurityFilterChain 和 SecurityFilterChain 的配置方式
- Spring Security 6.x 中,csrf() 和 authorizeRequests() 方法已经被弃用并标记为移除
- 其他的还有很多,不一一列举
本次为了实现权限管理、用户角色、刷新Token等基础功能
2.1 引入依赖
<!-- Spring Boot Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Spring Security --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><!-- JWT 解析 --><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.11.5</version></dependency><!-- Lombok(可选,简化代码) --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency>
2.2 创建 JWT 工具类
- 生成 Token
- 验证 Token
- 解析 Token
2.3 用户认证(登录接口)
- 用户输入用户名和密码
- 校验成功后,返回 JWT Token
2.4 创建 JWT 过滤器
拦截所有请求,从 Authorization 头获取 Token,并解析用户信息。
2.5 配置 Spring Security
自定义 Security 规则,允许 /auth/login 访问,其他路径需认证。