sa-token/sa-token-doc/more/update-log.md
2023-10-18 13:22:36 +08:00

37 KiB
Raw Blame History

更新日志

v1.37.0 @2023-10-18

  • 修复:修复路由拦截鉴权可被绕过的问题。 [漏洞修复]
  • 重构:未登录时调用鉴权 API 抛出未登录异常而不再是无权限异常。
  • 优化:优化 SaTokenDao 组件更换时的逻辑。
  • 文档:提供 SpringBoot3.x 路由匹配出错的解决方案。

v1.36.0 @2023-9-22

  • 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 等都可用)

v1.35.0 @2023-6-23

  • sa-token-core

    • 优化:前端未提供 token 时,getTokenSession() 将抛出未登录异常,而不是返回 null。 [不向下兼容]
    • 新增SaSession 新增字段:typeloginTypeloginIdtoken
    • 重构:全局过滤器抽离 SaFilter 统一接口。
    • 重构:全局过滤器 includeListexcludeList 改为 public同时移除对应的 getter 方法。 [不向下兼容]
    • 重构:将全局过滤器的 BeforeAuth 认证设为不受 includeListexcludeList 的限制,所有请求都会进入。 [不向下兼容]
    • 新增:新增循环生成 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 参数的能力。
  • 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 的逻辑。
  • 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-redis
    • sa-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

v1.34.0 @2023-1-11

新增插件:

  • 新增:新增 SpringBoot3.x 集成插件,感谢 @jry 提供的参考思路。 [重要]
  • 新增:新增 sa-token-dao-redisson-jackson 插件,感谢 @疯狂的狮子Li 提交的pr。 [重要]

sa-token-core 核心包:

  • 升级:升级 Sign 签名模块,增加部分重载方法。
  • 重构:SaSignTemplate#joinParams 更名为 joinParamsDictSort[不向下兼容]
  • 升级:升级临时 Token 认证模块,可指定 service 参数。
  • 删除:彻底删除过期类 SaAnnotationInterceptorSaRouteInterceptor
  • 修复:修复源码注释和文档的部分不合适之处。

sa-token-sso 单点登录:

  • 删除SSO 模块移除过期类 SaSsoHandle 类。
  • 新增SSO 模块增加 ticket 的 client 锁定功能,解决部分场景下的 ticket 劫持问题。 [重要]
  • 修复:修复 SSO 模式2在 client 端配置 is-share=false 时无法单点注销的问题。
  • 修复:修复 SSO 模式3 部分场景下注销时无法正常回退页面的问题。

其它模块:

  • sa-token-oauth2修复 OAuth2 模块示例 getClientModel 方法 clientId 写错的问题。
  • sa-token-alone-redis新增Alone-Redis 新增集群配置能力,感谢 @appleOfGray 提交的pr。 [重要]
  • sa-token-jwt重构使用 jwt-simple 模式后 is-share 恒等于 false无论是否有设定 setExtra 数据。

v1.33.0 @2022-11-16

  • 重构:重构异常状态码机制。 [重要]
  • 重构:重构 sa-token-sso 模块异常码改为 300 开头sa-token-jwt 异常码改为 302 开头。 [不向下兼容]
  • 新增:新增全局 Log 模块。 [重要]
  • 重构:SaTokenListenerForConsolePrint 改名 SaTokenListenerForLog[不向下兼容]
  • 修复:修复多线程下 SaFoxUtil.getRandomString() 随机数重复问题。
  • 修复:修复 sa-token-demo-sso3-client-nosdk 项目中单点注销 url 配置错误的问题
  • 文档:文档优化。

v1.32.0 @2022-10-28

  • 修复:修复 sa-token-dao-redis-fastjson 插件多余序列化 timeout 字段的问题。
  • 修复:修复 sa-token-dao-redis-fastjson 插件 session.getModel 无法反序列化实体类的问题。
  • 修复:修复 sa-token-quick-login 插件指定拦截排除路由不生效的问题。
  • 修复:修复 sa-token-alone-redis + sa-token-dao-redis-fastson 时 Redis 无法分离的问题。
  • 修复:修复在配置了 cookie.path 后,注销时无法彻底清除 Cookie 的问题。
  • 升级:SaFoxUtil.getValueByType() 新增对 char 类型的转换。
  • 新增:新增 sa-token-dao-redis-fastjson2 插件。 [重要]
  • 新增:新增全局配置 is-write-header,控制登录后是否将 Token 写入响应头。 [重要]
  • 新增:二级认证模块新增指定业务标识能力。 [重要]
  • 重构Id-Token 模块更名为 Same-Token。 [重要] [不向下兼容]
  • 重构:重构会话查询参数作用:由start=-1时查询全部会话,改为 start=0,size=-1 时查询全部。 [不向下兼容]
  • 重构:SaManager.getStpLogic("type") 默认当对应type不存在时不再抛出异常而是自动创建并返回。
  • 重构重构SSO模块静态式API改为实例式SaSsoHandle -> SaSsoProcessor。 [重要] [不向下兼容]
  • 重构SSO-Server 端单点注销地址修改 /sso/logout -> /sso/signout,避免与 SSO-Client 端同 path 的冲突。 [不向下兼容]
  • 新增:文档新增 SSO 平台中心模式示例,跳连接进入子系统。 [重要]
  • 新增新增SSO前后端分离集成示例 vue2 & vue3 版本。 [重要]
  • 重构SSO 示例项目 http 请求工具改为 Forest。
  • 新增SSO模块文档新增单个项目同时搭建 sso-serversso-client 的示例。 [重要]
  • 新增SSO模块文档新增一个项目同时搭建两个 sso-server 服务 的示例。 [重要]
  • 文档:在线文档新增代码示例。
  • 文档:在线文档增加全局调色功能。
  • 文档:[自定义 SaTokenContext 指南] 章节新增对三种模型的解释。
  • 文档:新增多账号体系混合鉴权代码示例。
  • 文档:文档增加 Gradle 依赖方式和 properties 风格配置。
  • 新增:新增 sa-token-dependencies,统一定义依赖版本。 [重要]
已知问题:

部分场景下 Token 重复问题,受影响版本 =v1.32.0

  • 受影响模块:
    • sa-token-core 切换了 Token 风格tik、random-32、random-64、random-128如果使用 默认uuid、simple-uuid 风格则不受影响。
    • sa-token-core 使用了临时 Token 认证模块,如果集成了 sa-token-temp-jwt 则不受影响。
    • sa-token-core 使用了 Same-Token 模块。
    • sa-token-jwt 全模块
    • sa-token-oauth2 全模块
    • sa-token-sso 模式二和模式三

v1.31.0 @2022-9-8

  • 文档:新增优秀开源案例展示。
  • 文档:新增博客展示,欢迎大家投稿。
  • 新增:新增 SaInterceptor 综合拦截器。 [重要] [不向下兼容]
  • 新增:新增 新增 @SaIgnore 忽略鉴权注解。 [重要]
  • 新增:新增插件 sa-token-dao-redis-fastjson,感谢 @sikadai 提交的pr。 [重要]
  • 新增:新增插件 sa-token-context-grpc,感谢 @LiYiMing666 提交的pr。 [重要]
  • 重构SaSession 取消 tokenSignList 的 final 修饰符。
  • 新增SaSession 添加 setTokenSignList 方法。
  • 重构TokenSign 新增 setValuesetDevice 方法。
  • 修复:修复多账号模式下不能正确重置 StpLogic 的问题。
  • 修复:修复 SaSession 对象中 TokenSign 判断有可能空指针的问题。
  • 修复:解决当权限码为 null 时可能带来的空指针问题。
  • 新增:新增 StpUtil.getExtra(tokenValue, key) 方法,用于获取任意 token 的扩展参数。
  • 优化:优化 StpLogic#logoutByTokenValue 方法逻辑,精简代码。
  • 重构:SaTokenConfig 配置类字段 isReadHead 改为 isReadHeader[不向下兼容]
  • 修复:修复部分场景下踢人下线会抛出异常 非Web上下文无法获取Request 的问题。
  • 新增:新增方法 StpLogic#getAnonTokenSession,可在未登录情况下安全的获取 Token-Session。 [重要]
  • 新增:新增 SaApplication 对象,用于全局作用域存取值。 [重要]
  • 重构:将 SaTokenListener 改为事件发布订阅模式,允许同时注册多个侦听器。 [重要] [不向下兼容]
  • 重构:StpUtil.login(id) 不再强制校验账号是否禁用,需要手动校验。 [不向下兼容]
  • 重构:DisableLoginException 更换名称为 DisableServiceException[不向下兼容]
  • 新增:新增对账号限制、分类封禁、阶梯封禁功能。 [重要]
  • 新增会话查询API增加反序获取会话方式。
  • 新增SSO模块增加 server-url 属性,用于简化各种 url 配置。 [重要]
  • 修复:修复单点登录模块 ssoLogoutCall 配置项无效的问题。
  • 优化:优化 SaSsoHandle.checkTicket(ticket, currUri); 方法,使其不提供 currUri 参数时将不再注册单点注销回调。
  • 修复:修复 SaOAuth2Handle 类中 doLogin 方法没有使用 Param.pwd 常量的问题。
  • 新增:新增 SaOAuth2Util.checkClientTokenScope(clientToken, scopes) 方法,校验 Client-Token 是否含有指定 Scope。
  • 删除:删除 sa-token-jwt 模块过期 class。
  • 重构:sa-token-jwt 模块依赖改为 hutool-jwt,并升级版本为 5.8.5。
  • 重构:sa-token-jwt 模块改为 Util + Template 形式,方便针对部分代码重写。 [重要]
  • 新增在线文档添加API手册。
  • 重构:sa-token-oauth2 模块密码模式新增 client_secret 参数校验。[不向下兼容]
  • 新增:集成 jacoco 插件,核心包单元测试覆盖率提高至 90% 以上。
  • 优化:开源案例分离专属仓库:Awesome-Sa-Token

v1.30.0 @2022-05-9

  • 新增:新增集成 Web-Socket 鉴权示例。 [重要]
  • 新增:新增集成 Web-SocketSpring封装版 鉴权示例。
  • 新增:新增 jfinal 集成包 sa-token-jfinal-plugin [重要]
  • 新增:新增 jboot 集成包 sa-token-jboot-plugin (感谢 @nxstv 提交的pr
  • 修复:修复整合 sa-token-jwt Style 模式时,StpUtil.getExtra("key") 无效的bug
  • 升级:升级 sa-token-context-dubbo dubbo版本2.7.11 -> 2.7.15
  • 升级:借助 flatten-maven-plugin 统一版本号定义 (感谢 @ruansheng8 提交的pr [重要]
  • 修复:修复在 springboot 2.6.xquick-login 插件循环依赖无法启动的问题
  • 优化:sa-token-spring-aop 依赖改为 sa-token-core避免在webflux环境下启动报错的问题
  • 优化:源码注释 设备标识 改为 设备类型 更符合语义
  • 修复:解决部分协议下 dubbo 参数变为小写导致 Id-Token 鉴权无效的问题
  • 升级:单元测试升级为 JUnit5
  • 新增:新增 maxLoginCount 配置,指定同一账号可同时在线的最大数量 [重要]
  • 升级:彻底删除 SaTokenAction 接口,完全由 SaStrategy 代替
  • 新增:新增 sa-token-dao-redisx 插件,感谢 @noear 提交的pr [重要]
  • 优化:增加 parseToken 未配置 jwt 密钥时的异常提示,感谢 @BATTLEHAWK00 提交的pr
  • 优化sso,oauth2 插件中调用配置类使用 getter 方法,感谢 @Naah 提交的pr
  • 新增:新增 json 转换器模块
  • 重构SaTokenListener#doLogin 方法新增 tokenValue 参数 [不向下兼容]
  • 升级SpringBoot 相关组件依赖版本升级至 2.5.12
  • 文档:在线文档所有 AjaxJson 改为 SaResult
  • 文档:“多账号认证” -> 改为 “多账户认证”
  • 文档:部分章节新增动态演示图 [重要]
  • 升级:顶级异常类 SaTokenException 增加 code 异常细分状态码。详见 [重要]
  • 注意升级:受异常细分状态码影响,NotPermissionException 类中 getCode() 方法改为 getPermission() [不向下兼容]
  • SSO 模块升级:
    • 重构SSO 模块从核心包拆分为独立插件 sa-token-sso [重要]
    • 优化SSO模式三单点注销回调方法中注销语句改为stpLogic.logout(loginId) 更符合情景
    • 修复:解决 sso 构建认证地址时,部分 Servlet 版本内部实现不一致带来的双 back 参数问题。
    • 升级SSO 模块提供精细化异常处理
    • 重构SSO 模式三接口 /sso/checkTicket/sso/logout,更改响应体格式 [不向下兼容]
    • 优化SSO 模式三单点注销搭建示例增加 try-catch,提高容错性
    • 优化:SsoUtil.singleLogout 改为 SsoUtil.ssoLogout,且无需再提供 secretkey 参数 [不向下兼容]
    • 升级:将 SSO 模式三的接口调用改为签名式校验。 [重要] [不向下兼容]
    • 新增:新增 SSO 模式三下无 sdk 的对接示例, 感谢 @Sa-药水 的建议反馈 [重要]
  • sa-token-jwt 模块升级:
    • 重构:sa-token-jwt 的创建强制校验loginType [不向下兼容]
    • 重构:StpLogicJwtForStateless 由重写 login 方法改为重写 createLoginSession
    • 重构:SaJwtUtil 工具类不再吞并异常消息,且提供精细化异常 code 码。
    • 重构改名StpLogicJwtForStyle -> StpLogicJwtForSimple
    • 重构改名StpLogicJwtForMix -> StpLogicJwtForMixin
    • 修复:修复 StpLogicJwtForSimple 模式下 Extra 数据可能受到旧 token 影响的bug

v1.29.0 @2022-02-10

  • 升级sa-token-jwt插件可在登录时添加额外数据。
  • 重构优化Dubbo调用时向下传递Token的规则可避免在项目启动时由于Context无效引发的bug。
  • 重构OAuth2 授权模式开放由全局配置和Client单独配置共同设定。
  • 重构OAuth2 模块部分属性支持每个 Client 单独配置。
  • 重构OAuth2 模块部分方法名修复单词拼写错误converXxx -> convertXxx。
  • 重构:修复 OAuth2 模块 deleteAccessTokenIndex 回收 token 不彻底的bug。
  • 新增OAuth2 模块新增 pastClientTokenTimeout,用于指定 PastClientToken 默认有效期。
  • 文档:常见报错章节增加目录树,方便查阅。
  • 文档:优化文档样式。
  • 新增:新增 BCrypt 加密。
  • 修复修复StpUtil.getLoginIdByToken(token) 在部分场景下返回出错的bug。
  • 重构优化OAuth2模块密码式校验步骤。
  • 新增新增Jackson定制版Session避免timeout属性的序列化。
  • 新增SaLoginModel新增setToken方法用于预定本次登录产生的Token。
  • 新增:新增 StpUtil.createLoginSession() 方法用于无Token注入的方式创建登录会话。
  • 新增OAuth2 与 StpUtil 登录会话数据互通。
  • 新增:新增 StpUtil.renewTimeout(100); 方法,用于 Token 的 Timeout 值续期。
  • 修复修复默认dao实现类中 updateObject 无效的bug
  • 完善:完善单元测试。

v1.28.0 @2021-11-5

  • 新增:新增 sa-token-jwt 插件用于与jwt的整合 [重要]
  • 新增:新增 sa-token-context-dubbo 插件,用于与 Dubbo 的整合 [重要]
  • 文档文档新增章节Sa-Token 插件开发指南 [重要]
  • 文档:文档新增章节:名称解释
  • 优化:抽离 getSaTokenDao() 方法,方便重写
  • 新增:单元测试新增多账号模式数据不互通测试
  • 优化:优化在线文档,修复部分错误之处
  • 优化优化未登录异常抛出提示标注无效的Token值
  • 修复:修复单词拼写错误 getDeviceOrDefault
  • 优化:优化 jwt 集成示例
  • 文档:新增常见问题总结

v1.27.0 @2021-10-11

  • 升级:增强 SaRouter 链式匹配能力 [重要]
  • 新增:新增插件 Thymeleaf 标签方言 [重要]
  • 新增:@SaCheckPermission 增加 orRole 字段用于权限角色“双重or”匹配 [重要]
  • 升级Cookie模式增加 securehttpOnlysameSite等属性的配置 [重要]
  • 重构重构SSO三种模式抽离出统一的认证中心 [重要]
  • 新增:新增 SaStrategy 策略类,方便内部逻辑按需重写 [重要]
  • 新增:临时认证模块新增 deleteToken 方法用于回收 Token
  • 新增:新增 kickout、replaced 等注销会话的方法,更灵活的控制会话周期 [重要]
  • 新增权限认证增加APIStpUtil.hasPermissionAndStpUtil.hasPermissionOr
  • 新增角色认证增加APIStpUtil.hasRoleAndStpUtil.hasRoleOr
  • 新增:新增 StpUtil.getRoleList()StpUtil.getPermissionList() 方法
  • 新增:新增 StpLogic 自动注入特性,可快速方便的扩展 StpLogic 对象
  • 优化:优化同端互斥登录逻辑,如果登录时没有指定设备类型标识,则默认顶替所有设备类型下线
  • 优化:在未登录时调用 hasRole 和 hasPermission 不再抛出异常而是返回false
  • 升级:升级注解鉴权算法,并提供更简单的重写方式
  • 文档:新增常见报错排查,方便快速排查异常报错
  • 文档文档新增SSO单点登录与OAuth2技术选型对比
  • 破坏式更新:
    • [向下兼容] 废弃 SaTokenAction 接口,替代方案: SaStrategy
    • [向下兼容] 移除 StpUtil.logoutByLoginId() 更换为 StpUtil.kickout();
    • [不向下兼容] 侦听器 doLogoutByLoginId 与 doReplaced 方法移除 device 参数
    • [不向下兼容] 侦听器 doLogoutByLoginId 方法重命名为 doKickout

v1.26.0 @2021-9-2

  • 优化:优化单点登录文档
  • 新增:新增 Http Basic 认证 [重要]
  • 新增:文档新增跨域解决方案
  • 文档:新增 Nginx 转发请求丢失uri的解决方案
  • 文档:新增 SSO 自定义 API 路由示例 [重要]
  • 示例:新增 SSO-Server 端前后端分离示例 [重要]

v1.25.0 @2021-8-16

  • 新增:SaRequest新增getHeader(name, defaultValue)方法用于获取header默认值
  • 新增:SaRequest 添加 forward 转发方法
  • 新增Readme新增源码模块介绍、友情链接、正在使用Sa-Token的项目
  • 重构重构SSO单点登录模块源码增加可读性
  • 新增SSO配置表新增所属端说明
  • 新增SSO模式三新增账号资料同步示例 [重要]
  • 新增前后端分离模式下接入SSO的示例 [重要]
  • 优化优化SSO单点注销重定向逻辑
  • 重构重构SSO单点登录模块部分API
  • 优化优化SaQuickBean中过滤器处理逻辑
  • 文档:优化文档样式,增加示例
  • 文档:代码鉴权、注解鉴权、路由拦截鉴权,选择指南
  • 文档:文档新增 SSO旧有系统改造指南
  • 文档SSO集成文档里添加API列表
  • 文档:新增 Sa-Token-Study 链接,讲解 Sa-Token 源码涉及到的技术点
  • 不兼容更新重构:
    • 重构:修复 SaReactorHolder.getContent() 拼写错误:content -> context

v1.24.0 @2021-7-24

  • 修复修复部分场景下Alone-Redis插件导致项目无法启动的问题
  • 优化增加对SpringBoot1.x版本的兼容性
  • 新增SaOAuth2Util新增checkScope函数用于校验令牌是否具备指定权限
  • 新增OAuth2.0模块新增revoke接口用于提前回收 Access-Token 令牌
  • 新增:新增Sa-Id-Token 模块,解决微服务内部调用鉴权 [重要]
  • 文档新增OAuth2.0模块常用方法说明
  • 优化:大幅度优化文档示例

v1.23.0 @2021-7-19

  • 新增Sa-Token-OAuth2 模块正式发布 [重要]
  • 修复修复jwt集成demo无法正确注册StpLogic的bug
  • 修复修复登录时某些场景下Session续期可能不正常的bug
  • 优化:代码注释优化,文档优化

v1.22.0 @2021-7-10

  • 新增SaSsoConfig 部分属性增加set连缀风格
  • 优化SaSsoUtil 可定制化底层的 StpLogic
  • 新增:新增 SaSsoHandle 大幅度简化单点登录整合步骤 [重要]
  • 新增新增Sa-Token在线测评链接https://ks.wjx.top/vj/wFKPziD.aspx [重要]
  • 新增Sa-Token-Quick-Login 插件新增拦截与放行路径配置
  • 优化:大幅度优化文档示例

v1.21.0 @2021-7-2

  • 新增新增Token二级认证 [重要]
  • 新增:新增Sa-Token-Alone-Redis独立Redis插件 [重要]
  • 新增新增SSO三种模式彻底解决所有场景下的单点登录问题 [重要]
  • 新增:新增多账号模式下,注解合并示例 [重要]
  • 新增:新增SaRouter.back()函数,用于停止匹配返回结果
  • 不兼容更新重构:
    • 更改yml配置前缀[spring.sa-token.] 改为 [sa-token.],目前版本暂时向下兼容,请尽快更新

v1.20.0 @2021-6-17

  • 新增新增Solon适配插件感谢大佬 @刘西东 提供的pr [重要]
  • 新增:新增SaRouter.stop()函数,用于一次性跳出匹配链功能 [重要]
  • 新增:新增单元测试 [重要]
  • 新增:新增临时令牌验证模块 [重要]
  • 新增:新增sa-token-temp-jwt模块整合jwt临时令牌鉴权 [重要]
  • 新增:会话 SaSession.get() 增加缓存API简化代码
  • 新增:新增框架调查问卷
  • 修复:修复同时引入 Spring Cloud BusSa-Token 冲突的问题 [重要]
  • 修复:修复SaServletFilter异常函数中无法自定义Content-Type的问题
  • 文档:新增微服务依赖引入说明
  • 文档:新增认证流程图
  • 不兼容更新重构:
    • 方法:StpUtil.setLoginId(id) -> StpUtil.login(id)
    • 方法:StpUtil.getLoginKey() -> StpUtil.getLoginType() (注意其它所有地方的LoginKey均已更改为loginType)
    • 工具类:SaRouterUtil -> SaRouter
    • 配置类:allowConcurrentLogin -> isConcurrent
    • 配置类:isV -> isPrint
    • 为保证平滑更新旧API仍旧保留但已增加@Deprecated注解请尽快更新至新API

v1.19.0 @2021-5-10

  • 新增注解鉴权新增定制loginType功能 [重要]
  • 重构:重构目录结构,抽离plugin模块 [重要]
  • 新增:新增 sa-token-quick-login 插件,零代码集成登录功能 [重要]
  • 优化:所有函数式接口增加@FunctionalInterface注解,感谢群友@MrXionGe提供的建议
  • 优化:文档优化...

v1.18.0 @2021-4-24

  • 新增:新增权限通配符功能,灵活设置权限 [重要]
  • 修复:修复自动续签处的逻辑错误
  • 新增新增Web开发常见漏洞防护建议
  • 修复:修复SaRequest中缺少getMethod()的bug
  • 修复:修复自动续签时的逻辑错误,感谢群成员@N的建议
  • 新增:全局过滤器新增 beforAuth 前置函数
  • 修复修复在带有上下文的项目中无法正确获取请求路径的bug感谢群成员@dlwlrma提供的建议
  • 新增:新增SaHolder上下文持有类,可方便的在上下文中读写数据
  • 重构:SaTokenManager -> SaManager
  • 重构:SaTokenInsideUtil -> SaFoxUtil

v1.17.0 @2021-4-17

  • 修复在WebFlux环境中引入Redis集成包无法启动的问题
  • 修复修复JWT集成示例中版本升级API的变更
  • 优化:优化启动时字符画打印
  • 文档:新增集成环境说明
  • 文档:新增功能介绍图
  • 新增:全局过滤器增加限定[拦截路径]与[排除路径]功能
  • 重构:全局过滤器执行函数放到成员变量里,连缀风格配置
  • 新增新增全局侦听器可在用户登陆、注销、被踢下线等关键性操作时进行一些AOP操作 [重要]

v1.16.0 @2021-4-12

  • 新增:新增账号封禁功能,指定时间内账号无法登陆 [重要]
  • 新增:核心包脱离ServletAPI,彻底零依赖! [重要]
  • 新增:新增基于ThreadLocal的上下文容器 [重要]
  • 新增:新增Reactor响应式编程支持,WebFlux集成! [重要]
  • 新增:新增全局过滤器,解决拦截器无法拦截静态资源的问题 [重要]
  • 新增:新增微服务网关鉴权方案!可接入ShenYuGateway等网关组件! [重要]
  • 新增AOP切面定义Order顺序为-100,可保证在多个自定义切面前执行
  • 文档:新增推荐公众号列表

v1.15.0 @2021-3-23

  • 新增:文档添加源码涉及技术栈说明
  • 优化:优化路由拦截器模块文档,更简洁的示例
  • 修复修复非web环境下的错误提示Request->Response
  • 修复修复Cookie注入时path判断错误感谢@zhangzi0291提供的PR
  • 新增文档集成Redis章节新增redis配置示例说明感谢群友 @-) 提供的建议
  • 新增增加token前缀模式可在配置token读取前缀适配Bearer token规范 [重要]
  • 优化:SaTokenManager初始化Bean去除initXxx方法,优化代码逻辑
  • 新增:SaTokenManager新增stpLogicMap集合,记录所有StpLogic的初始化,方便查找
  • 新增:Session新增timeout操作API可灵活修改Session的剩余有效时间
  • 新增token前缀改为强制校验模式如果配置了前缀则前端提交token时必须带有
  • 优化:精简SaRouteInterceptor,只保留自定义验证和默认的登陆验证,去除冗余功能
  • 优化:SaRouterUtil迁移到core核心包优化依赖架构
  • 优化默认Dao实现类里Timer定时器改为子线程 + sleep 模拟
  • 新增:Session新增各种类型转换API可快速方便存取值 [重要]
  • 升级注意:
    • SaRouterUtil类迁移到核心包注意更换import地址
    • SaRouteInterceptor去出冗余API详情参考路由鉴权部分

v1.14.0 @2021-3-12

  • 新增:新增SaLoginModel登录参数Model适配 [记住我] 模式 [重要]
  • 新增:新增 StpUtil.login() 时指定token有效期可灵活控制用户的一次登录免验证时长
  • 新增新增Cookie时间判断timeout设置为-1时Cookie有效期将为Integer.MAX_VALUE [重要]
  • 新增新增密码加密工具类可快速MD5、SHA1、SHA256、AES、RSA加密 [重要]
  • 新增:新增 OAuth2.0 模块 [重要]
  • 新增:SaTokenConfig配置类所有set方法支持链式调用
  • 新增:SaOAuth2Config sa-token oauth2 配置类所有set方法新增支持链式调用
  • 优化:StpLogic类所有getKey方法重名为splicingKey,更语义化的函数名称
  • 新增:IsRunFunction新增noExe函数,用于指定当isRun值为false时执行的函数
  • 新增:SaSession新增数据存取值操作API
  • 优化:优化SaTokenDao接口增加Object操作API
  • 优化jwt示例createToken方法去除默认秘钥判断,只在启动项目时打印警告
  • 文档:常见问题新增示例(修改密码后如何立即掉线)
  • 文档:权限认证文档新增[如何把权限精确搭到按钮级]示例说明
  • 文档:优化文档,部分模块添加图片说明

v1.13.0 @2021-2-9

  • 优化:优化源码注释与文档
  • 新增文档集成Gitalk评论系统
  • 优化:源码包Maven版本号更改为变量形式
  • 修复:文档处方法名getPermissionList错误的bug
  • 修复:修复StpUtil.getTokenInfo()会触发自动续签的bug
  • 修复:修复接口 SaTokenDaosearchData 函数注释错误
  • 新增:SaSession的创建抽象到SaTokenAction接口,方便按需重写
  • 新建:框架内异常统一继承 SaTokenException 方便在异常处理时分辨处理
  • 新增:SaSession新增setId()setCreateTime()方法,方便部分框架的序列化
  • 新增:新增autoRenew配置,用于控制是否打开自动续签模式
  • 新增:同域模式下的单点登录 [重要]
  • 新增:完善分布式会话的文档说明

v1.12.0 @2021-1-12

  • 新增提供JWT集成示例 [重要]
  • 新增:新增路由式鉴权,可方便的根据路由匹配鉴权 [重要]
  • 新增:新增身份临时切换功能,可在一个代码段内将会话临时切换为其它账号 [重要]
  • 优化:将SaCheckInterceptor.java更名为SaAnnotationInterceptor.java,更语义化的名称
  • 优化:优化文档
  • 升级v1.12.1,新增SaRouterUtil工具类,更方便的路由鉴权 [重要]

v1.11.0 @2021-1-10

  • 新增提供AOP注解鉴权方案 [重要]
  • 优化自动生成token的算法

v1.10.0 @2021-1-9

  • 新增:提供查询所有会话方案 [重要]
  • 修复修复token设置为永不过期时无法正常被顶下线的bug感谢github用户 @zjh599245299 提出的bug

v1.9.0 @2021-1-6

  • 优化:spring-boot-starter-data-redis2.3.7.RELEASE 改为 2.3.3.RELEASE
  • 修复:补上注解拦截器里漏掉验证@SaCheckRole的bug
  • 新增新增同端互斥登录像QQ一样手机电脑同时在线但是两个手机上互斥登录 [重要]

v1.8.0 @2021-1-2

  • 优化:优化源码注释
  • 修复:修复部分文档错别字
  • 修复:修复项目文件夹名称错误
  • 优化:优化文档配色,更舒服的代码展示
  • 新增:提供sa-token集成 redisspring-boot-starter 方案 [重要]
  • 新增:新增集成 redis 时,以jackson作为序列化方案 [重要]
  • 新增dao层默认实现增加定时清理过期数据功能 [重要]
  • 新增:新增token专属session, 更灵活的会话管理 [重要]
  • 新增:增加配置,指定在获取token专属session时是否必须登录
  • 新增在无token时自动创建会话完美兼容token-session会话模型! [重要]
  • 修改权限码限定必须为String类型
  • 优化注解验证模式由boolean属性改为枚举方式
  • 删除:StpUtil删除部分冗长API保持API清爽性
  • 新增:新增角色验证 (角色验证与权限验证已完全分离) [重要]
  • 优化:移除StpUtil.kickoutByLoginId()APIlogoutByLoginId代替
  • 升级:开源协议修改为Apache-2.0

v1.7.0 @2020-12-24

  • 优化项目架构改为maven多模块形式方便增加新模块 [重要]
  • 优化:与springboot的集成改为springboot-starter模式,无需@SaTokenSetup注解即可完成自动装配 [重要]
  • 新增:新增activity-timeout配置可控制token临时过期与续签功能 [重要]
  • 新增:timeout过期时间新增-1值代表永不过期
  • 新增:StpUtil.getTokenInfo()改为对象形式,新增部分常用字段
  • 优化解决在无cookie模式下不集成redis时会话无法主动过期的问题
  • 修复:修复文档首页样式问题

v1.6.0 @2020-12-17

  • 新增花式token生成方案 [重要]
  • 优化:优化readme.md
  • 修复:修复SaCookieOperSaTokenAction无法自动注入的问题

v1.5.1 @2020-12-16

  • 新增细化未登录异常类型提供五种场景值未提供token、token无效、token已过期 、token已被顶下线、token已被踢下线 [重要]
  • 修复:修复StpUtil.getSessionByLoginId(String loginId)方法转换key出错的bug感谢群友 @(#°Д°)、@一米阳光 发现的bug
  • 优化:修改方法StpUtil.getSessionByLoginId(Object loginId)的isCreate值默认为true
  • 修改:方法delSaSession修改为deleteSaSession,更加语义化的函数名称
  • 新增:新增StpUtil.getTokenName()方法更语义化的获取tokenName
  • 新增:新增SaTokenAction框架行为Bean方便重写逻辑
  • 优化:Cookie操作改为接口代理模式,使其可以被重写
  • 优化文档里集成redis部分增加redis的pom依赖示例
  • 修复:登录验证-> StpUtil.getLoginId_defaultNull() 修复方法名错误的问题
  • 优化:优化readme.md
  • 升级:开源协议修改为MIT

v1.4.0 @2020-9-7

  • 优化修改一些函数、变量名称使其更符合阿里java代码规范
  • 优化:tokenValue的读取优先级改为:request > body > header > cookie [重要]
  • 新增:新增isReadCookie配置,决定是否从cookie里读取token信息
  • 优化:如果isReadCookie配置为false,那么在登录时也不会把cookie写入cookie
  • 新增:新增getSessionByLoginId(Object loginId, boolean isCreate)方法
  • 修复:修复文档部分错误,修正群号码

v1.3.0 @2020-5-2

  • 新增:新增 StpUtil.checkLogin() 方法,更符合语义化的鉴权方法
  • 新增:注册拦截器时可设置 StpLogic ,方便不同模块不同鉴权方式
  • 新增:抛出异常时增加 loginType 区分,方便多账号体系鉴权处理
  • 修复修复启动时的版本字符画版本号打印不对的bug
  • 修复:修复文档部分不正确之处
  • 新增:新增文档的友情链接

v1.2.0 @2020-3-7

  • 新增:新增注解式验证,可在路由方法中使用注解进行权限验证 [重要]
  • 参考:注解式验证

v1.1.0 @2020-2-12

  • 修复:修复StpUtil.getLoginId(T defaultValue)取值转换错误的bug

v1.0.0 @2020-2-4

  • 第一个版本出炉