自学内容网 自学内容网

SpringBoot3集成Sa-Token详解

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的高级功能,如单点登录、自定义持久化等。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章


原文地址:https://blog.csdn.net/NiNg_1_234/article/details/145208993

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!