Sa-Token与Solon框架集成实战指南
前言
在现代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();
}
}
功能测试
启动应用后,可以通过以下方式测试:
-
访问登录接口:
http://localhost:8081/user/doLogin?username=zhang&password=123456
-
检查登录状态:
http://localhost:8081/user/isLogin
进阶功能
Sa-Token在Solon中同样支持丰富的功能:
- 会话管理:通过StpUtil进行会话操作
- 权限验证:使用注解或API进行权限控制
- 踢人下线:强制指定用户退出登录
- 多端登录:配置不同的登录策略
- 持久层扩展:自定义令牌持久化方式
常见问题
- 依赖无法加载:检查Maven/Gradle配置,确保仓库设置正确
- 配置不生效:确认配置文件位置和格式正确
- 跨域问题:在Solon中配置跨域支持
- 会话失效:检查timeout和active-timeout配置
结语
通过本文的介绍,你应该已经掌握了在Solon项目中集成Sa-Token的基本方法。Sa-Token简洁的API设计与Solon的高效特性相得益彰,能够为你的应用提供既轻量又强大的安全认证解决方案。在实际项目中,你可以根据业务需求进一步探索Sa-Token提供的高级功能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考