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 实践教程
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/291767.html