Releases: dromara/Sa-Token
Releases · dromara/Sa-Token
Sa-Token v1.44.0 发布,常规更新 bug 修复
- 修复:修复 sso-server 前后端分离示例无法正常登录的问题。
- 修复:修复 SSO 模式三全端注销失效的问题。
- 修复:修复 SSO
SaSsoClientModel部分场景下无法序列化的问题。 - 新增:OAuth2 模块新增支持从
SaOAuth2DataLoader接口获取高级权限与低级权限的方法。merge: pr 339 - 修复:修复
sa-token-dubbo与sa-token-dubbo3每次调用都强制需要上下文的问题。 - 文档:新增
sa-token-dubbo3的说明。 - 文档:更新赞助者名单。
- 文档:新增
loveqq-framework框架集成包。 [重要] merge: pr 339
Sa-Token v1.43.0 发布,SSO 支持单设备注销、消息推送,OAuth2 支持多 Access-Token 并存能力。
- core:
- 新增:
SaLogoutParameter新增deviceId参数,用于控制指定设备 id 的注销。 [重要] - 新增:新增
SaHttpTemplate请求处理器模块。 - 新增:TOTP 增加
issuer字段。 merge: pr 329 - 修复:修复
Http Digest认证时 url 上带有查询参数时认证无法通过的问题。merge: pr 334 - 新增:@SaCheckOr 注解添加
append字段,用于抓取未预先定义的注解类型进行批量注解鉴权。 - 新增:侦听器
doRenewTimeout方法添加 loginType 参数。 - 新增:
SaInterceptor新增beforeAuth认证前置函数。
- 新增:
- SSO:
- 新增:单点注销支持单设备注销。 [重要] fix: #IA6ZK0 、#747
- 新增:新增消息推送机制。 [重要] fix: #IBGXA7
- 新增:配置项 clients 用于单独配置每个 client 的授权信息。 [重要]
- 新增:配置项
allowAnonClient决定是否启用匿名 client。 - 新增:SSO 模块新增配置文件方式启用“不同 client 不同秘钥”能力。
- 重构:sso-client 封装化获取 client 标识值。
- 新增:新增 SSO Strategy 策略类。
- 新增:sso-client 新增
convertCenterIdToLoginId、convertLoginIdToCenterId策略函数,用于描述本地 LoginId 与认证中心 loginId 的转换规则。 - 新增:sso-server 新增
jumpToRedirectUrlNotice策略,用于授权重定向跳转之前的通知。 - 优化:调整整体 SSO 示例代码。
- 新增:新增 ReSdk 模式对接示例:
sa-token-demo-sso3-client-resdk。 [重要] - 新增:新增匿名应用模式对接示例:
sa-token-demo-sso3-client-anon。 [重要]
- OAuth2:
- 新增:
SaClientModel新增isAutoConfirm配置项,用于决定是否允许应用可以自动确认授权。 [重要] - 新增:多
Access-Token并存、多Refresh-Token并存、多Client-Token并存能力。 [重要] fix: #IBHFD1 、 #IBLL4Q 、#724 - 新增:Scope 分割符支持加号。merge: pr 333
- 修复:修复 oidc 协议下,当用户数据变动后,id_token 仍是旧信息的问题。
- 优化:对
OAuth2 Password认证模式需要重写处理器添加强提醒。 - 优化:将认证流程回调从
SaOAuth2ServerConfig转移到SaOAuth2Strategy。 - 新增:新增
SaOAuth2Strategy.instance.userAuthorizeClientCheck策略,用于检查指定用户是否可以授权指定应用。fix: #553 - 优化:优化调整
sa-token-oauth2模块代码结构及注释。 - 新增:
currentAccessToken()、currentClientToken(),简化读取access_token、client_token步骤
- 新增:
- 插件:
- 新增:新增
sa-token-forest插件,用于在 Http 请求处理器模块整合 Forest。 - 新增:新增
sa-token-okhttps插件,用于在 Http 请求处理器模块整合 OkHttps。 - 拆分:API Key 模块拆分独立插件包:
sa-token-apikey。 - 拆分:API Sign 模块拆分独立插件包:
sa-token-sign。 - 修复:修复
sa-token-dubbo插件部分场景上下文控制出错的问题。 - 修复:修复
sa-token-sanck3SaSessionForSnack3Customized:getModel接收 map 值时会出错的问题。 merge: pr 330 - 修复:修复使用
sa-token-redis-template-jdk-serializer时反序列化错误。merge: pr 331 - 修复:
sa-token-snack3优化objectToJson序列化处理(增加类名,但不增加根类名)。 - 重构:重构
sa-token-redis-template、sa-token-redis-template-jdk-serializer插件中 update 方法 ttl 获取方式改为毫秒,以减少 update 时的 ttl 计算误差。 [重要]
- 新增:新增
- 示例:
- 新增:新增 SSE 鉴权示例。
- 文档:
- 新增:新增文档离线版下载。
- 新增:新增框架功能列表插图。
- 新增:新增示例:如何在响应式环境下的 Filter 里调用 Sa-Token 同步 API。
- 新增:新增 QA:在 idea 导入源码,运行报错:java: 程序包cn.dev33.satoken.oauth2不存在。
- 新增:新增 QA:新增QA:报错:SaTokenContext 上下文尚未初始化。
- 新增:新增 QA:在 idea 导入源码,运行报错:java: 程序包cn.dev33.satoken.oauth2不存在。
- 新增:重写路由匹配算法修正为最新写法。
- 新增:修复 OAuth2 UnionId 章节相关不正确描述。
- 优化:完善 QA:访问了一个不存在的路由,报错:SaTokenContext 上下文尚未初始化。 fix: #771
- 优化:补充 sso 模块遗漏的配置字段介绍。
- 优化:OAuth2-Server 示例添加真正表单。
- 新增:文档新增重写
PasswordGrantTypeHandler处理器示例。 - 新增:sso 章节和 oauth2 章节文档增加可重写策略说明。
- 其它:
- 新增:readme 新增框架功能介绍图。
- 新增:SSO 模块新增思维导图说明。
- 新增:readme 新增 Forest 的友情链接。
Sa-Token v1.42.0 发布,新增 API Key 模块、TOTP、Mock 上下文、Temp-Token 反查
- core:
- 新增: 新增
API Key模块。 [重要] - 新增: 新增
TOTP实现。 [重要] - 重构:重构
TempToken模块,新增 value 反查 token 机制。 [重要] - 升级: 重构升级
SaTokenContext上下文读写策略。 [重要] - 新增: 新增 Mock 上下文模块。 [重要]
- 删除: 删除二级上下文模块。
- 新增: 新增异步场景使用 demo。 [重要]
- 新增: 新增
Base32编码工具类。 - 新增:新增
CORS跨域策略处理函数,提供不同架构下统一的跨域处理方案。 - 新增:
renewTimeout续期方法增加 token 终端信息有效性校验。 - 新增: 全局配置项
cookieAutoFillPrefix:cookie 模式是否自动填充 token 前缀。 - 新增: 全局配置项
rightNowCreateTokenSession:在登录时,是否立即创建对应的Token-Session。 - 优化:优化
Token-Session获取算法,减少缓存读取次数。 - 新增:
SaLoginParameter支持配置SaCookieConfig,以配置 Cookie 相关参数。 - 修改:防火墙校验过滤器的注册顺序 修改为 -102。
- 新增:防火墙
hook注册新增registerHookToFirst、registerHookToSecond方法,以便更灵活的控制 hook 顺序。
- 新增: 新增
- 插件:
- 新增:
sa-token-quick-login插件支持Http Basic方式通过认证。
- 新增:
- 单元测试:
- 补全:补全
Temp Token模块单元测试。
- 补全:补全
- 文档:
- 补全:补全赞助者名单。
- 修复:修复
Thymeleaf集成文档不正确的依赖示例说明。 - 修复:修复
unionid章节错误描述。 - 优化:采用更细致的描述优化SSO模式三单点注销步骤。
- 新增:登录认证文档添加 Cookie 查看步骤演示图。
- 新增:多账号模式新增注意点:运行时不可更改
LoginType。 - 新增: 多账号模式QA:在一个接口里获取是哪个体系的账号正在登录。
- 新增:新增QA:解决低版本
SpringBoot (<2.2.0)引入 Sa-Token 报错的问题。 - 新增:新增QA:前后端一体项目下,在拦截未登录进入登录页面时,如何登录完成后原路返回?
- 新增:新增QA:Sa-Token 集成 Redis 如何集群?
- 新增:新增QA:如何自定义框架读取 token 的方式?
- 新增:新增QA:修改
hosts文件无效可能原因排查。 - 新增:新增QA:如何防止 CSRF 攻击。
- 新增: “异步 & Mock 上下文” 章节。
- 升级:升级“自定义 SaTokenContext 指南”章节文档。
v1.41.0
- core:
- 修复:修复
StpUtil.setTokenValue("xxx")、loginParameter.getIsWriteHeader()空指针的问题。 fix: #IBKSM0 - 修复:将
SaDisableWrapperInfo.createNotDisabled()默认返回值封禁等级改为 -2,以保证向之前版本兼容。 - 新增:新增基于 SPI 的插件体系。 [重要]
- 重构:JSON 转换器模块。 [重要]
- 新增:新增 serializer 序列化模块,控制
Object与String的序列化方式。 [重要] - 重构:重构防火墙模块,增加 hooks 机制。 [重要]
- 新增:防火墙新增:请求 path 禁止字符校验、Host 检测、请求 Method 检测、请求头检测、请求参数检测。重构目录遍历符检测算法。
- 重构:重构
SaTokenDao模块,将序列化与存储操作分离。 [重要] - 重构:重构
SaTokenDao默认实现类,优化底层设计。 - 新增:
isLastingCookie配置项支持在全局配置中定义了。 - 重构:
SaLoginModel->SaLoginParameter。 [不向下兼容] - 重构:
TokenSign->SaTerminalInfo。 [不向下兼容] - 新增:
SaTerminalInfo新增extraData自定义扩展数据设置。 - 新增:
SaLoginParameter支持配置isConcurrent、isShare、maxLoginCount、maxTryTimes。 - 新增:新增
SaLogoutParameter,用于控制注销会话时的各种细节。 [重要] - 新增:新增
StpLogic#isTrustDeviceId方法,用于判断指定设备是否为可信任设备。 - 新增:新增
StpUtil.getTerminalListByLoginId(loginId)、StpUtil.forEachTerminalList(loginId)方法,以更方便的实现单账号会话管理。 - 升级:API 参数签名配置支持自定义摘要算法。
- 新增:新增
@SaCheckSign注解鉴权,用于 API 签名参数校验。 - 新增:API 参数签名模块新增多应用模式。 fix: #IAK2BI, #I9SPI1, #IAC0P9 [重要]
- 重构:全局配置
is-share默认值改为 false。 [不向下兼容] - 重构:踢人下线、顶人下线默认将删除对应的 token-session 对象。
- 优化:优化注销会话相关 API。
- 重构:登录默认设备类型值改为 DEF。 [不向下兼容]
- 重构:
BCrypt标注为@Deprecated。 - 新增:
sa-token-quick-login支持SpringBoot3项目。 fix: #IAFQNE、#673 - 新增:
SaTokenConfig新增replacedRange、overflowLogoutMode、logoutRange、isLogoutKeepFreezeOps、isLogoutKeepTokenSession配置项。
- 修复:修复
- OAuth2:
- 重构:重构 sa-token-oauth2 插件,使注解鉴权处理器的注册过程改为 SPI 插件加载。
- 插件:
- 新增:
sa-token-serializer-features插件,用于实现各种形式的自定义字符集序列化方案。 - 新增:
sa-token-fastjson插件。 - 新增:
sa-token-fastjson2插件。 - 新增:
sa-token-snack3插件。 - 新增:
sa-token-caffeine插件。
- 新增:
- 单元测试:
- 新增:
sa-token-json-testjson 模块单元测试。 - 新增:
sa-token-serializer-test序列化模块单元测试。
- 新增:
- 文档:
- 新增:QA “多个项目共用同一个 redis,怎么防止冲突?”
- 优化:补全 OAuth2 模块遗漏的相关配置项。
- 优化:优化 OAuth2 简述章节描述文档。
- 优化:完善 “SSO 用户数据同步 / 迁移” 章节文档。
- 修正:补全项目目录结构介绍文档。
- 新增:文档新增 “登录参数 & 注销参数” 章节。
- 优化:优化“技术求助”按钮的提示文字。
- 新增:新增
preview-doc.bat文件,一键启动文档预览。 - 完善:完善 Redis 集成文档。
- 新增:新增单账号会话查询的操作示例。
- 新增:新增顶人下线 API 介绍。
- 新增:新增 自定义序列化插件 章节。
- 其它:
- 新增:新增
sa-token-demo/pom.xml以便在 idea 中一键导入所有 demo 项目。 - 删除:删除不必要的
.gitignore文件 - 重构:重构
sa-token-solon-plugin插件。 - 新增:新增设备锁登录示例。
- 新增:新增
Sa-Token v1.40.0 发布,新增大量特性
- core:
- 新增:新增
Cookie自定义属性支持。 fix: #693 [重要] - 新增:
SaFirewallStrategy防火墙策略:请求 path 黑名单校验、非法字符校验、白名单放行。 [重要] - 修复:新增对分号字符的 path 路径校验。 参考:Sa-Token对url过滤不全存在的风险点 [漏洞修复]
- 修复: 修复部分场景下登录后已存在的
token-session没有被续期的问题。 fix: #IA8U1O - 优化:优化
active-timeout的检查与续期操作,同一请求内只会检查与续期一次。 - 修复:
SaFoxUtil.joinSharpParam方法中不正确的注释。 - 新增:封禁模块新增支持实时从数据库查询数据。
- 新增:新增
- SSO:
- 优化:SSO 示例代码的跨域处理由原生方式改为 Sa-Token 过滤器模式。
- 新增:文档新增 “SSO整合 - NoSdk 模式与非 java 项目” 章节。
- 新增:“不同 SSO Client 配置不同秘钥” 章节增加部分异常的处理方案提示,fix: #IAFZXL
- 删除:sso demo 示例中部分不必要的代码内容。
- OAuth2:
- 新增:OAuth2 Client 前端测试页。 [重要]
- 新增:
UnionId联合id 实现。 [重要] - 新增:
oauth2-server端前后台分离示例与文档。 [重要] - 新增:
OIDC模式nonce随机数响应校验。 merge: pr311 - 修复:错误方法名
deleteGrantScope(String state)->deleteState(String state)。 - 修复:全局配置项
sa-token.oauth2-server.oidc.iss无效的问题。 - 新增:回收 Refresh-Token 方法:
revokeRefreshToken、revokeRefreshTokenByIndex。 - 新增:为
CodeModel、AccessTokenModel、RefreshTokenModel、ClientTokenModel添加createTime字段,以记录该数据的创建时间。 - 新增:为 Access-Token、Client-Token 添加
grantType字段,以记录该数据的授权类型。 - 新增:
SaOAuth2Util.getCode等方法,以更方便的获取、校验授权码。
- 插件:
- 文档:
Sa-Token v1.39.0 发布,大幅重构 OAuth2 模块
- 核心:
- 升级:重构注解鉴权底层,支持自定义鉴权注解了。 [重要]
- 修复:修复前端提交同名
Cookie时的框架错读现象。
- 插件:
- 修复:修复
sa-token-quick-login插件无法正常拦截的问题。
- 修复:修复
- SSO:
- 优化:优化 sso-server 前后端分离 demo 代码。
- 优化:优化 sso-server 前后端分离时的跳转流程。
- OAuth2:
- 重构:
sa-token-oauth2模块整体重构。 [重要] [不向下兼容] - 新增:新增支持自定义
scope处理器。 [重要] - 新增:新增支持自定义
grant_type。 [重要] - 新增:新增
scope划分等级。 [重要] - 新增:新增
oidc协议支持。 [重要] - 新增:新增支持默认
openid生成算法。 [重要] - 新增:新增
OAuth2注解鉴权支持。 [重要] - 修复:
redirect_url参数校验增加规则:不允许出现@字符、*通配符只能出现在最后一位。关联 issue [重要] - 优化:优化代码注释、异常提示信息。
- 升级:兼容
Http Basic提交client信息的场景。感谢 github@CuiGeekYoung提交的pr。 - 升级:兼容
Bearer Token方式提交access_token和client_token。 - 升级:适配拆分式路由。
- 新增:将
scope字段改为 List 类型。 - 重构:抽离
SaOAuth2Strategy全局策略接口,定义一些创建 token 的算法策略。 - 新增:新增
addAllowUrlsaddContractScopes方法,简化SaClientModel构建代码。 - 重构:抽离
SaOAuth2Dao接口,负责数据持久。 - 重构:抽离
SaOAuth2DataLoader数据加载器接口。 - 重构:抽离
SaOAuth2DataGenerate数据构造器接口。 - 重构:抽离
SaOAuth2DataConverter数据转换器接口。 - 重构:抽离
SaOAuth2DataResolver数据解析器接口。 - 重构:重构
SaOAuth2Handle->SaOAuth2ServerProcessor更方便的逻辑重写。 - 重构:重构
PastToken->LowerClientToken。 - 新增:新增
state值校验,同一state参数不可重复使用。 - 优化:完善
SaOAuth2Util相关方法,更方便的二次开发。 - 新增:新增部分异常类,细分异常
ClassType。 - 优化:优化
sa-token-oauth2异常细分状态码。
- 重构:
- 文档:
- 新增:新增数据结构说明。
- 新增:新增不同
client不同登录页说明。 - 优化:优化文档 [将权限数据放在缓存里] 示例。
- 新增:新增 从 Shiro、SpringSecurity、JWT 迁移 示例。 [重要]
Sa-Token v1.38.0 发布,大幅重构 SSO 模块
- sa-token-core:
- 修复:修复
StpUtil.getSessionByLoginId(xx)参数为 null 时创建无效SaSession的 bug。 - 优化:在
SpringBoot 3.x版本下错误的引入依赖时将得到启动失败的提示。 (感谢Uncarbon提交的pr) - 优化:进一步优化权限校验算法,hasXxx API 只会返回 true 或 false,不再抛出异常。
- 重构:
InvalidContextException更名为SaTokenContextException。 [已做向下兼容处理] - 重构:彻底删除
NotPermissionException异常中的getCode()方法。 [过期API清理] - 重构:重构
SaTokenException类方法throwBy->notTrue、throwByNull->notEmpty。[已做向下兼容处理] - 重构:
StpUtil.getSessionBySessionId提供的SessionId为空时将直接抛出异常,而不是再返回null。[不向下兼容] - 新增:新增
Http Digest认证模块简单实现。 [重要] - 重构:更换
HttpBasic认证模块包名。 [已做向下兼容处理] - 新增:新增
StpUtil.getLoginDeviceByToken(xxx)方法,用于获取任意 token 的登录设备类型。 - 新增:新增
StpUtil.getTokenLastActiveTime()方法,获取当前 token 最后活跃时间。 - 修复:修复“当登录时指定 timeout 小于全局 timeout 时,
Account-Session有效期为全局 timeout”的问题。 - 优化:首次获取
Token-Session时,其有效期将保持和 token 有效期相同,而不是再是全局 timeout 值。 - 移除:移除
SaSignConfig的isCheckNonce配置项。 [不向下兼容] - 新增:
SaSignTemplate#checkRequest增加“可指定参与签名参数”的功能。 - 重构:将部分加密算法设置为过期。
- 重构:优化 token 读取策略,空字符串将视为没有提交token。
- 修复:
sa-token-bom补全缺失依赖。 - 优化:二级认证校验之前必须先通过登录认证校验。
- 修复:修复
StpUtil.getLoginId(T defaultValue)传入 null 时无法正确返回值的bug。
- 修复:修复
- sa-token-sso:
- 优化:SSO 模式三,API 调用签名校验时,限定参与签名的参数列表,更安全。
- 新增:新增
autoRenewTimeout配置项:是否在每次下发 ticket 时,自动续期 token 的有效期(根据全局 timeout 值) - 新增:
SaSsoConfig新增配置isCheckSign(是否校验参数签名),方便本地开发时的调试。 - 新增:
SaSsoConfig新增配置currSsoLogin,用于强制指定当前系统的 sso 登录地址。 - 重构:整体重构
sa-token-sso模块,将server端和client端代码拆分。 [重要] [不向下兼容] - 新增:
SaSsoConfig配置项ssoLogoutCall重命名为currSsoLogoutCall。[已做向下兼容处理] - 重构:模式三在校验 Ticket 时,也将强制校验签名才能调通请求。[不向下兼容]
- 新增:新增
maxRegClient配置项,用于控制模式三下 client 注册数量。 - 新增:新增不同 SSO Client 配置不同
secret-key的方案。 [重要] - 重构:匿名 client 将不再能解析出所有应用的 ticket。[不向下兼容]
- 新增:新增
homeRoute配置项:在/sso/auth登录后不指定 redirect 参数的情况下默认跳转的路由。 - 优化:优化登录有效期策略,SSO Client 端登录时将延续 SSO Server 端的会话剩余有效期。
- 新增:新增
checkTicketAppendData策略函数,用于在校验 ticket 后,给 sso-client 端追加返回信息。 - 新增:SSO章节文档新增用户数据同步/迁移方案的建议。
- 修复:修复利用@字符可以绕过域名允许列表校验的漏洞。 [漏洞修复]
- 修复:禁止
allow-url配置项 * 符号出现在中间位置,因为这有可能导致校验被绕过。 [漏洞修复]
- 新增插件/示例:
- 新增:新增插件
sa-token-hutool-timed-cache,用于整合 Hutool 缓存插件 TimedCache。 [重要] - 新增:新增 SSM 架构整合 Sa-Token 简单示例。 [重要]
- 新增:新增 beetl 整合 Sa-Token 简单示例。 [重要]
- 新增:新增插件
- 文档:
- 部分章节将
@Autowired更换为更合适的@PostConstruct - 新增过滤器执行顺序更改示例。
- 部分章节将
- 其它:
- 优化:将跨域处理demo拆分为独立仓库。
- 优化:解决 springboot 集成 sa-token 后排除 jsckson 依赖无法成功启动的问题。
- 优化:解决
sa-token-jwt模块重复设置 keyt 秘钥问题。(感谢KonBAI提交的pr) - 优化:jwt模式 token 过期后,抛出的异常描述是 token 已过期,而不再是 token 无效。
- 修复:补齐
sa-token-spring-aop模块中遗漏监听的注解。
Sa-Token v1.37.0 发布,轻量级权限认证框架
- 修复:修复路由拦截鉴权可被绕过的问题。 [漏洞修复]
- 重构:未登录时调用鉴权 API 抛出未登录异常而不再是无权限异常。
- 优化:优化 SaTokenDao 组件更换时的逻辑。
- 文档:提供 SpringBoot3.x 路由匹配出错的解决方案。
Sa-Token v1.36.0 发布,轻量级权限认证框架
- sa-token-core:
- 修复:API接口签名校验参数接口NPE问题,增加必须参数的非空校验处理。
- 新增:加密工具类新增 sha384、sha512 实现。 感谢
@若初995提交的pr。 [重要] - 修复:
SaFoxUtil.vagueMatch()正则匹配的一些问题。 [漏洞修复] - 修复:
SaRouter.match()路由匹配的一些问题。 [漏洞修复]
- 其它:
- 优化:
sa-token-alone-redis去掉不必要的配置项判断。 - 新增:
sa-token-solon-plugin增加对 solon 网关的支持。 - 新增:新增第三方插件专用仓库:
sa-token-three-plugin。 - 升级:
sa-token-solon-plugin增加对 solon 网关的支持。
- 优化:
- 文档:
- 新增:新增开启全局懒加载时不能注入上下文处理器的处理方案 。
- 新增:新增 RefreshToken 示例。 [重要]
- 新增:文档新增 sa-token 小助手,可在线实时技术提问。 [重要]
- 优化:其它一些优化。
- 新增插件:
sa-token-redisson-jackson2:通用 redisson 集成方案 (spring, solon, jfinal 等都可用)
Sa-Token v1.35.0.RC 发布,新增动态 active-timeout 能力
-
sa-token-core:
- 优化:前端未提供 token 时,
getTokenSession()将抛出未登录异常,而不是返回 null。 [不向下兼容] - 新增:SaSession 新增字段:
type、loginType、loginId、token。 - 重构:全局过滤器抽离 SaFilter 统一接口。
- 重构:全局过滤器
includeList、excludeList改为 public,同时移除对应的 getter 方法。 [不向下兼容] - 重构:将全局过滤器的 BeforeAuth 认证设为不受
includeList与excludeList的限制,所有请求都会进入。 [不向下兼容] - 新增:新增循环生成 token 的算法,用于确保 Token 的唯一性。 [重要]
- 重构:API 接口签名所有方法均迁移至 core 核心模块。 [重要]
- 新增:新增彩色日志打印,更方便的分辨不同日志等级。 [重要]
- 重构:重构概念:临时有效期 -> token 最低活跃频率,过期后 token 冻结。
- 重构:重构概念:
User-Session->Account-Session。 - 新增:新增
getTokenTimeout(String token)方法,获取任意 token 剩余有效期。 - 优化:在登录时增加判断当前 StpLogic 是否支持 extra 扩展参数模式,如果不支持则打印警告信息。
- 新增:NotLoginException 增加新场景值 -6、-7,提供更精确的未登录异常描述信息。
- 新增:TokenSign 新增 tag 挂载参数,可在登录时方便的存储一些客户端特有数据。 [重要]
- 新增:新增
SaStrategy#createStpLogic,用于指定动态创建 StpLogic 时的算法策略。 - 新增:新增
@SaCheckOr批量注解鉴权:只要满足其中一个注解即可通过验证。 [重要] - 重构:重命名:
SaStrategy.me->SaStrategy.instance。 - 重构:在登录时强制性检查账号 id 是否为异常值,如果是则登录失败。
- 重构:重构概念:
activity-timeout->active-timeout。 [重要] - 新增:新增动态
active-timeout能力,可在每次登录时指定active-timeout值。 [重要] - 优化:将
SaStrategy所有策略声明抽离为单独的函数式接口。 - 新增:增加为 StpLogic 单独配置
SaTokenConfig参数的能力。
- 优化:前端未提供 token 时,
-
sa-token-sso:
- 修复:在 SSO 模式三中
ticket校验地址配错时,会出现 NPE 的问题 - 新增:新增
getData接口配置,在模式三拉取数据时可以传递任意参数。 [重要] - 重构:模式三秘钥配置更改:
sa-token.sso.secretkey=xxx->sa-token.sign.secret-key=xxx。 [不向下兼容] - 重构:模式三校验签名方法更改:
SaSsoUtil.checkSign(req)->SaSignUtil.checkRequest(req)。 [不向下兼容] - 新增:新增
sa-token.sso.mode配置项,用于约定此系统使用的 SSO 模式。 - 优化:优化校验 ticket 的逻辑。
- 修复:在 SSO 模式三中
-
sa-token-jwt:
- 修复:jwt 令牌的签名类型可以被篡改的问题。 [重要]
-
其它:
- 优化:所有模块优化注释,更方便开发者阅读源码。
- 优化:在所有 .java 文件中添加 license 头说明。
- 优化:修复大部分代码警告。
- 新增:新增 thymeleaf 标签方言命名空间,增强 ide 代码提示。 [重要]
- 新增:定义
sa-token-bom包,方便引入 sa-token 时对齐版本。 - 新增:sa-token-dubbo3 插件新增代码示例。
- 新增:新增跨域文章和示例:Header 参数版和第三方 Cookie 版。 [重要]
- 修复:修复
sa-token-alone-redis在低版本 springboot 下无法启动成功(缺少username属性)的问题。
-
新增插件:
- 新增:新增
sa-token-context-dubbo3插件。 感谢@qiudaozhang提交的 pr。 [重要]
- 新增:新增
-
文档:
- 新增:部分常见报错排查。
- 新增:首页图片增加懒加载效果,节省流量。
- 新增:增加 Cookie 配置示例。
- 修复:整理 demo 结构目录结构,修复不正确的路径说明。
- 新增:新增 api-sign 模块文档。 [重要]
-
简化包名 [重要] [不向下兼容]
sa-token-dao-redis->sa-token-redissa-token-dao-redis-jackson->sa-token-redis-jackson。sa-token-dao-redis-fastjson->sa-token-redis-fastjson。sa-token-dao-redis-fastjson2->sa-token-redis-fastjson2。sa-token-dao-redisson-jackson->sa-token-redisson-jackson。sa-token-dao-redisx->sa-token-redisx。sa-token-context-dubbo->sa-token-dubbo。sa-token-context-dubbo3->sa-token-dubbo3。sa-token-context-grpc->sa-token-grpc。