Spring Boot集成sa-token的项目实践
作者:源梦倩影
本文主要介绍了Spring Boot集成sa-token的项目实践,实现了基本的登录和权限控制功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
sa-token
是一个轻量级且功能强大的权限认证框架,它基于Java语言,专为Java开发者设计,以简化权限管理的复杂性。在Spring Boot项目中集成sa-token
,可以快速实现会话管理、权限控制等功能。本文将通过教程式写作,带领读者一步步实现Spring Boot与sa-token
的集成。
环境准备
- JDK 1.8 或以上版本
- Maven 或 Gradle 作为构建工具
- Spring Boot 2.x 版本
- IntelliJ IDEA 或 Eclipse 作为开发IDE
集成步骤
添加依赖
首先,需要在项目的pom.xml
文件中添加sa-token
的依赖。以Maven为例:
<dependencies> <!-- 引入sa-token核心模块 --> <dependency> <groupId>cn.dev33</groupId> <artifactId>sa-token-spring-boot-starter</artifactId> <version>1.21.0</version> </dependency> <!-- 其他Spring Boot依赖 --> </dependencies>
配置文件
在application.properties
或application.yml
中,可以对sa-token
进行一些基本配置,例如:
sa-token.token-name = sa-token sa-token.token-time = 3600
启用sa-token
创建一个配置类,启用sa-token
:
import org.springframework.context.annotation.Configuration; import cn.dev33.satoken.spring.SaTokenConfig; @Configuration public class SaTokenConfigDemo implements SaTokenConfig { @Override public void config() { // 此处可以配置sa-token的行为 } }
编写登录逻辑
实现一个登录方法,用于生成token:
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import cn.dev33.satoken.SaManager; import cn.dev33.satoken.SaToken; import cn.dev33.satoken.stp.SaLoginModel; @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进行登录 SaManager.login(10001); // 假设10001是当前登录用户的id return "登录成功"; } else { return "账号或密码错误"; } } }
权限控制
使用@SaCheckPermission
注解实现权限控制:
import cn.dev33.satoken.annotation.SaCheckPermission; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class SecureController { @GetMapping("/secure") @SaCheckPermission("admin") // 只有拥有admin权限的才能访问 public String secureInfo() { return "这是受保护的信息"; } }
示例代码
以下是一些示例代码的汇总,供读者参考:
// SaTokenConfigDemo.java @Configuration public class SaTokenConfigDemo implements SaTokenConfig { @Override public void config() { // 配置sa-token行为 } } // LoginController.java @RestController public class LoginController { @PostMapping("/login") public String login(@RequestParam("username") String username, @RequestParam("password") String password) { // 登录逻辑 } } // SecureController.java @RestController public class SecureController { @GetMapping("/secure") @SaCheckPermission("admin") public String secureInfo() { // 受保护的信息 } }
测试
启动应用,访问/login
接口进行登录,然后尝试访问/secure
接口,查看权限控制效果。
结语
通过以上步骤,我们已经成功地将sa-token
集成到了Spring Boot项目中,实现了基本的登录和权限控制功能。sa-token
的更多高级功能,如角色管理、权限细分等,可以通过阅读官方文档进一步学习。
到此这篇关于Spring Boot集成sa-token的项目实践的文章就介绍到这了,更多相关SpringBoot集成sa-token内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!