java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot集成sa-token

Spring Boot集成sa-token的项目实践

作者:源梦倩影

本文主要介绍了Spring Boot集成sa-token的项目实践,实现了基本的登录和权限控制功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

sa-token 是一个轻量级且功能强大的权限认证框架,它基于Java语言,专为Java开发者设计,以简化权限管理的复杂性。在Spring Boot项目中集成sa-token,可以快速实现会话管理、权限控制等功能。本文将通过教程式写作,带领读者一步步实现Spring Boot与sa-token的集成。

环境准备

集成步骤

添加依赖

首先,需要在项目的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.propertiesapplication.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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文