SuperAPI AI 工具集

sa-token-api-security

安全与审计

查看项目

更新于 10-15 21:48

技能介绍

用途:为 Java 项目提供 API 层面的安全防御,包括参数签名、API Key 授权和临时 Token 三类场景。

主要能力:API 参数签名(sa-token-sign)用于跨系统接口防篡改、防重放,基于 timestamp+nonce+sign;支持多应用签名模式、多套 secret-key 与 md5/sha256/sha512 摘要算法。API Key(sa-token-apikey)用于第三方开发者部分授权、Scope 权限控制、可吊销,支持多账号体系独立模板与 DataLoader 数据库持久化。临时 Token(SaTempUtil,内嵌核心包)用于短效链接邀请、非会话式授权,支持前缀裁剪与反向查询。

使用方式:签名需引入 sa-token-sign 依赖,配置 secret-key 与摘要算法,请求端用 SaSignUtil.addSignParamsAndJoin() 构建签名参数,接收端用 SaSignUtil.checkRequest() 或 @SaCheckSign 校验。API Key 需引入 sa-token-apikey 依赖,用 SaApiKeyUtil.createApiKeyModel() 创建,客户端通过请求参数或 header 提交 apikey,服务端用 @SaCheckApiKey 校验。临时 Token 用 SaTempUtil.createToken() 创建,SaTempUtil.parseToken() 解析,有效期由第二个参数指定秒数。

适用场景:系统间调用防篡改、第三方开发者凭证、短期邀请链接;需同时防篡改与身份认证时可组合 API 签名与 API Key。

限制:签名需双方协商 secret-key,且 secret-key 泄露后需立即更换,不建议硬编码;API Key 默认存缓存,重启丢失,持久化需实现 SaApiKeyDataLoader;临时 Token 默认不记录索引,无法反查;基础登录认证、JWT/Redis 集成、微服务 Same-Token 不在本技能范围内。签名时间戳默认容差 15 分钟。