SpringBoot3集成Sa-Token详解
文章目录
- SpringBoot3集成Sa-Token详解
- 一、引言
- 二、集成步骤
- 1、添加依赖
- 2、配置文件
- 三、编写核心代码
- 1、登录逻辑
- 2、权限控制
- 四、使用示例
- 五、总结
SpringBoot3集成Sa-Token详解
一、引言
在现代的Web应用开发中,权限认证是一个不可或缺的部分。Sa-Token作为一个轻量级的Java权限认证框架,以其功能丰富、高性能、高度可扩展等优点,受到了越来越多开发者的青睐。本文将详细介绍如何在SpringBoot 3项目中集成Sa-Token,实现登录认证和权限控制等功能。
二、集成步骤
1、添加依赖
在pom.xml
文件中添加Sa-Token相关的依赖:
xml复制
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot3-starter</artifactId>
<version>1.38.0</version>
</dependency>
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-jwt</artifactId>
<version>1.38.0</version>
</dependency>
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-redis-jackson</artifactId>
<version>1.38.0</version>
</dependency>
同时,根据项目需要,可能还需要添加其他依赖,如数据库连接、MyBatis等。
2、配置文件
在application.yml
文件中进行Sa-Token的基本配置:
yaml复制
server:
port: 8080
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/your_database
username: your_username
password: your_password
data:
redis:
host: localhost
port: 6379
sa-token:
token-name: X-Token
timeout: -1
active-timeout: 3600
jwt-secret-key: qazwsxedc
这里配置了服务器端口、数据源、Redis连接信息以及Sa-Token的Token名称、有效期等。
三、编写核心代码
1、登录逻辑
创建一个登录控制器LoginController
,实现登录功能:
java复制
@RestController
public class LoginController {
@PostMapping("/login")
public String login(@RequestParam("username") String username,
@RequestParam("password") String password) {
// 假设此处有数据库校验逻辑
if ("admin".equals(username) && "123456".equals(password)) {
// 账号密码校验成功后,使用sa-token进行登录
StpUtil.login(10001); // 假设10001是当前登录用户的id
return "登录成功";
} else {
return "账号或密码错误";
}
}
}
当用户名和密码校验成功后,调用StpUtil.login()
方法进行登录,并生成Token。
2、权限控制
使用@SaCheckPermission
注解实现权限控制:
java复制
@RestController
public class SecureController {
@GetMapping("/secure")
@SaCheckPermission("admin") // 只有拥有admin权限的才能访问
public String secureInfo() {
return "这是受保护的信息";
}
}
通过在方法上添加@SaCheckPermission
注解,可以限制只有具备相应权限的用户才能访问该接口。
四、使用示例
启动应用后,可以通过Postman或浏览器访问/login
接口进行登录,登录成功后会生成一个Token。然后在请求头中携带该Token,访问/secure
接口,如果用户具备admin
权限,则可以正常访问,否则会返回权限不足的提示。
五、总结
通过以上步骤,我们成功地在SpringBoot 3项目中集成了Sa-Token,实现了登录认证和权限控制功能。Sa-Token的集成过程简单,且提供了丰富的功能和灵活的配置选项,能够满足大多数Web应用的权限认证需求。开发者可以根据项目的具体需求,进一步探索Sa-Token的高级功能,如单点登录、自定义持久化等。
版权声明:本博客内容为原创,转载请保留原文链接及作者信息。
参考文章:
- SpringBoot 3 集成 Sa-Token 实现权限相关功能
- SpringBoot权限认证-Sa-Token的使用与详解