sa-token/sa-token-doc/doc/more/update-log.md
2022-02-10 01:35:09 +08:00

19 KiB
Raw Blame History

更新日志

2022-02-10 @v1.29.0

  • 升级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
  • 完善:完善单元测试。

2021-11-5 @v1.28.0

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

2021-10-11 @v1.27.0

  • 升级:增强 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

2021-9-2 @v1.26.0

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

2021-8-16 @v1.25.0

  • 新增: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

2021-7-24 @v1.24.0

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

2021-7-19 @v1.23.0

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

2021-7-10 @v1.22.0

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

2021-7-2 @v1.21.0

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

2021-6-17 @v1.20.0

  • 新增新增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

2021-5-10 @v1.19.0

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

2021-4-24 @v1.18.0

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

2021-4-17 @v1.17.0

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

2021-4-12 @v1.16.0

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

2021-3-23 @v1.15.0

  • 新增:文档添加源码涉及技术栈说明
  • 优化:优化路由拦截器模块文档,更简洁的示例
  • 修复修复非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详情参考路由鉴权部分

2021-3-12 @v1.14.0

  • 新增:新增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方法去除默认秘钥判断,只在启动项目时打印警告
  • 文档:常见问题新增示例(修改密码后如何立即掉线)
  • 文档:权限认证文档新增[如何把权限精确搭到按钮级]示例说明
  • 文档:优化文档,部分模块添加图片说明

2021-2-9 @v1.13.0

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

2021-1-12 @v1.12.0

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

2021-1-10 @v1.11.0

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

2021-1-9 @v1.10.0

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

2021-1-6 @v1.9.0

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

2021-1-2 @v1.8.0

  • 优化:优化源码注释
  • 修复:修复部分文档错别字
  • 修复:修复项目文件夹名称错误
  • 优化:优化文档配色,更舒服的代码展示
  • 新增:提供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

2020-12-24 @v1.7.0

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

2020-12-17 @v1.6.0

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

2020-12-16 @v1.5.1

  • 新增细化未登录异常类型提供五种场景值未提供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

2020-9-7 @v1.4.0

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

2020-5-2 @v1.3.0

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

2020-3-7 @v1.2.0

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

2020-2-12 @v1.1.0

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

2020-2-4 @v1.0.0

  • 第一个版本出炉