Skip to content

Sa-Token v1.38.0 发布,大幅重构 SSO 模块

Latest
Compare
Choose a tag to compare
@click33 click33 released this 12 May 08:05
· 5 commits to master since this release
  • 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->notTruethrowByNull->notEmpty[已做向下兼容处理]
    • 重构:StpUtil.getSessionBySessionId 提供的 SessionId 为空时将直接抛出异常,而不是再返回null。[不向下兼容]
    • 新增:新增 Http Digest 认证模块简单实现。 [重要]
    • 重构:更换 HttpBasic 认证模块包名。 [已做向下兼容处理]
    • 新增:新增 StpUtil.getLoginDeviceByToken(xxx) 方法,用于获取任意 token 的登录设备类型。
    • 新增:新增 StpUtil.getTokenLastActiveTime() 方法,获取当前 token 最后活跃时间。
    • 修复:修复“当登录时指定 timeout 小于全局 timeout 时,Account-Session 有效期为全局 timeout”的问题。
    • 优化:首次获取 Token-Session 时,其有效期将保持和 token 有效期相同,而不是再是全局 timeout 值。
    • 移除:移除 SaSignConfigisCheckNonce 配置项。 [不向下兼容]
    • 新增: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 模块中遗漏监听的注解。