Sa-Token与Solon框架集成实战指南

Sa-Token与Solon框架集成实战指南

Sa-Token 一个轻量级 Java 权限认证框架,让鉴权变得简单、优雅!—— 登录认证、权限认证、分布式Session会话、微服务网关鉴权、单点登录、OAuth2.0 Sa-Token 项目地址: https://gitcode.com/gh_mirrors/sa/Sa-Token

前言

在现代Java应用开发中,安全认证是一个不可忽视的重要环节。Sa-Token作为一款轻量级Java权限认证框架,以其简洁的API和强大的功能受到开发者青睐。而Solon作为新兴的国产应用框架,凭借其高性能和简洁的设计理念也获得了广泛关注。本文将详细介绍如何在Solon项目中集成Sa-Token,实现完善的权限认证功能。

环境准备

Solon框架简介

Solon是一个高效的Java应用开发框架,具有以下显著特点:

  • 启动速度比传统框架快5-10倍
  • QPS性能提升2-3倍
  • 运行时内存占用减少1/3到1/2
  • 打包体积可缩小至1/2到1/10
  • 全面支持JDK 8到JDK 20

项目创建

使用你熟悉的IDE创建一个新的Solon项目。推荐项目命名规范为sa-token-demo-solon,清晰表明项目用途。

集成步骤

1. 添加依赖

根据你的构建工具选择相应的依赖配置方式:

Maven配置
<dependency>
    <groupId>cn.dev33</groupId>
    <artifactId>sa-token-solon-plugin</artifactId>
    <version>${sa.top.version}</version>
</dependency>
Gradle配置
implementation 'cn.dev33:sa-token-solon-plugin:${sa.top.version}'

2. 配置参数

Sa-Token支持零配置启动,但为了满足不同业务场景,建议进行适当配置:

YAML格式配置
server:
    port: 8081
    
sa-token: 
    token-name: satoken
    timeout: 2592000
    active-timeout: -1
    is-concurrent: true
    is-share: false
    token-style: uuid
    is-log: true
Properties格式配置
server.port=8081
sa-token.token-name=satoken
sa-token.timeout=2592000
sa-token.active-timeout=-1
sa-token.is-concurrent=true
sa-token.is-share=false
sa-token.token-style=uuid
sa-token.is-log=true

关键配置说明:

  • token-name: 自定义令牌名称
  • timeout: 令牌有效期(秒),-1表示永久有效
  • active-timeout: 令牌活跃超时时间
  • is-concurrent: 是否允许多地登录
  • is-share: 是否共享令牌
  • token-style: 令牌生成风格

3. 创建启动类

@SolonMain
public class SaTokenDemoApp {
    public static void main(String[] args) {
        Solon.start(SaTokenDemoApp.class, args);
        System.out.println("启动成功,Sa-Token 配置如下:" + SaManager.getConfig());
    }
}

4. 实现认证接口

创建用户控制器处理认证相关请求:

@Mapping("/user/")
@Controller
public class UserController {

    // 登录接口
    @Mapping("doLogin")
    public String doLogin(String username, String password) {
        // 实际项目中应查询数据库验证
        if("zhang".equals(username) && "123456".equals(password)) {
            StpUtil.login(10001);
            return "登录成功";
        }
        return "登录失败";
    }

    // 登录状态检查
    @Mapping("isLogin")
    public String isLogin() {
        return "当前会话是否登录:" + StpUtil.isLogin();
    }
}

功能测试

启动应用后,可以通过以下方式测试:

  1. 访问登录接口: http://localhost:8081/user/doLogin?username=zhang&password=123456

  2. 检查登录状态: http://localhost:8081/user/isLogin

进阶功能

Sa-Token在Solon中同样支持丰富的功能:

  1. 会话管理:通过StpUtil进行会话操作
  2. 权限验证:使用注解或API进行权限控制
  3. 踢人下线:强制指定用户退出登录
  4. 多端登录:配置不同的登录策略
  5. 持久层扩展:自定义令牌持久化方式

常见问题

  1. 依赖无法加载:检查Maven/Gradle配置,确保仓库设置正确
  2. 配置不生效:确认配置文件位置和格式正确
  3. 跨域问题:在Solon中配置跨域支持
  4. 会话失效:检查timeout和active-timeout配置

结语

通过本文的介绍,你应该已经掌握了在Solon项目中集成Sa-Token的基本方法。Sa-Token简洁的API设计与Solon的高效特性相得益彰,能够为你的应用提供既轻量又强大的安全认证解决方案。在实际项目中,你可以根据业务需求进一步探索Sa-Token提供的高级功能。

Sa-Token 一个轻量级 Java 权限认证框架,让鉴权变得简单、优雅!—— 登录认证、权限认证、分布式Session会话、微服务网关鉴权、单点登录、OAuth2.0 Sa-Token 项目地址: https://gitcode.com/gh_mirrors/sa/Sa-Token

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

庞锦宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值