当前位置: 首页 > article >正文

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的使用与详解

http://www.kler.cn/a/507836.html

相关文章:

  • 【论文阅读笔记】人工智能胃镜在盲区检测和自主采图中的应用
  • 企业邮箱iRedMail搭建
  • 无人机技术架构剖析!
  • LDD3学习8--linux的设备模型(TODO)
  • Git学习笔记
  • 持续集成 01|Gitee介绍、Pycharm使用Gitee
  • windows下安装并使用node.js
  • 【Python】第二弹---深入理解编程基础:从常量、变量到注释的全面解析
  • Docker 镜像加速的配置
  • thinkphp:实现压缩文件上传、解压、文件更名、压缩包删除功能,增加trycatch
  • MyBatis基于XML的详细使用-缓存
  • 用户中心项目教程(一)--Ant design pro初始化的学习和使用
  • 什么是.NET中的反射,它有哪些应用场景
  • 包装类和简单认识泛型
  • RPA赋能内容创作:打造小红书入门词语图片的全自动化流程
  • 【Python】深入探讨Python中的单例模式:元类与装饰器实现方式分析与代码示例
  • 【Mysql进阶知识】Mysql 程序的介绍、选项在命令行配置文件的使用、选项在配置文件中的语法
  • 甲骨实物高保真数据归国,AI助力古文释读,发现甲骨新图像
  • python(25) : 含有大模型生成的公式的文本渲染成图片并生成word文档(支持flask接口调用)
  • Linux 35.6 + JetPack v5.1.4之 pyCUDA升级
  • OpenAI与Axios合作扩展新闻行业AI应用
  • 设计模式(4)行为模式
  • 正则表达式 匹配特定字符后的所有字符
  • SSE 实践:用 Vue 和 Spring Boot 实现实时数据传输
  • GORM(Go语言数据交互库)
  • Java ArrayList