代码拉取完成,页面将自动刷新
@若初995
提交的pr。 [重要]
SaFoxUtil.vagueMatch()
正则匹配的一些问题。 [漏洞修复]
SaRouter.match()
路由匹配的一些问题。 [漏洞修复]
sa-token-alone-redis
去掉不必要的配置项判断。sa-token-solon-plugin
增加对 solon 网关的支持。sa-token-three-plugin
。sa-token-solon-plugin
增加对 solon 网关的支持。sa-token-redisson-jackson2
:通用 redisson 集成方案 (spring, solon, jfinal 等都可用)sa-token-core:
getTokenSession()
将抛出未登录异常,而不是返回 null。 [不向下兼容]
type
、loginType
、loginId
、token
。includeList
、excludeList
改为 public,同时移除对应的 getter 方法。 [不向下兼容]
includeList
与 excludeList
的限制,所有请求都会进入。 [不向下兼容]
User-Session
-> Account-Session
。getTokenTimeout(String token)
方法,获取任意 token 剩余有效期。SaStrategy#createStpLogic
,用于指定动态创建 StpLogic 时的算法策略。@SaCheckOr
批量注解鉴权:只要满足其中一个注解即可通过验证。 [重要]
SaStrategy.me
-> SaStrategy.instance
。activity-timeout
-> active-timeout
。 [重要]
active-timeout
能力,可在每次登录时指定 active-timeout
值。 [重要]
SaStrategy
所有策略声明抽离为单独的函数式接口。SaTokenConfig
参数的能力。sa-token-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 模式。sa-token-jwt:
其它:
sa-token-bom
包,方便引入 sa-token 时对齐版本。sa-token-alone-redis
在低版本 springboot 下无法启动成功(缺少 username
属性)的问题。新增插件:
sa-token-context-dubbo3
插件。 感谢 @qiudaozhang
提交的 pr。 [重要]
文档:
简化包名 [重要] [不向下兼容]
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
。SpringBoot3.x
集成插件,感谢 @jry
提供的参考思路。 [重要]
sa-token-dao-redisson-jackson
插件,感谢 @疯狂的狮子Li
提交的pr。 [重要]
@appleOfGray
提交的pr。 [重要]
SaSignTemplate#joinParams
更名为 joinParamsDictSort
。 [不向下兼容]
SaAnnotationInterceptor
和 SaRouteInterceptor
。SaSsoHandle
类。is-share=false
时无法单点注销的问题。setExtra
数据。timeout
字段的问题。session.getModel
无法反序列化实体类的问题。sa-token-quick-login
插件指定拦截排除路由不生效的问题。sa-token-alone-redis
+ sa-token-dao-redis-fastson
时 Redis 无法分离的问题。SaFoxUtil.getValueByType()
新增对 char 类型的转换。sa-token-dao-redis-fastjson2
插件。 [重要]
is-write-header
,控制登录后是否将 Token 写入响应头。 [重要]
start=-1
时查询全部会话,改为 start=0,size=-1
时查询全部。 [不向下兼容]
SaManager.getStpLogic("type")
默认当对应type不存在时不再抛出异常,而是自动创建并返回。/sso/logout
-> /sso/signout
,避免与 SSO-Client 端同 path 的冲突。 [不向下兼容]
sso-server
和 sso-client
的示例。 [重要]
sso-server
服务 的示例。 [重要]
Gradle
依赖方式和 properties
风格配置。sa-token-dependencies
,统一定义依赖版本。 [重要]
SaInterceptor
综合拦截器。 [重要] [不向下兼容]
@SaIgnore
忽略鉴权注解。 [重要]
sa-token-dao-redis-fastjson
,感谢 @sikadai
提交的pr。 [重要]
sa-token-context-grpc
,感谢 @LiYiMing666
提交的pr。 [重要]
tokenSignList
的 final 修饰符。setTokenSignList
方法。setValue
和 setDevice
方法。StpLogic
的问题。StpUtil.getExtra(tokenValue, key)
方法,用于获取任意 token 的扩展参数。StpLogic#logoutByTokenValue
方法逻辑,精简代码。SaTokenConfig
配置类字段 isReadHead
改为 isReadHeader
。 [不向下兼容]
非Web上下文无法获取Request
的问题。StpLogic#getAnonTokenSession
,可在未登录情况下安全的获取 Token-Session。 [重要]
SaApplication
对象,用于全局作用域存取值。 [重要]
SaTokenListener
改为事件发布订阅模式,允许同时注册多个侦听器。 [重要] [不向下兼容]
DisableLoginException
更换名称为 DisableServiceException
。 [不向下兼容]
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
形式,方便针对部分代码重写。 [重要]
sa-token-oauth2
模块密码模式新增 client_secret
参数校验。[不向下兼容]
jacoco
插件,核心包单元测试覆盖率提高至 90% 以上。sa-token-jfinal-plugin
[重要]
sa-token-jboot-plugin
(感谢 @nextStar 提交的pr)StpUtil.getExtra("key")
无效的bugsa-token-context-dubbo
dubbo版本:2.7.11
-> 2.7.15
flatten-maven-plugin
统一版本号定义 (感谢 @ruansheng8 提交的pr) [重要]
springboot 2.6.x
下 quick-login
插件循环依赖无法启动的问题sa-token-spring-aop
依赖改为 sa-token-core
,避免在webflux环境下启动报错的问题Id-Token
鉴权无效的问题maxLoginCount
配置,指定同一账号可同时在线的最大数量 [重要]
sa-token-dao-redisx
插件,感谢 @noear 提交的pr [重要]
2.5.12
AjaxJson
改为 SaResult
SaTokenException
增加 code 异常细分状态码。详见 [重要]
NotPermissionException
类中 getCode()
方法改为 getPermission()
。 [不向下兼容]
sa-token-sso
[重要]
stpLogic.logout(loginId)
更符合情景/sso/checkTicket
、/sso/logout
,更改响应体格式 [不向下兼容]
try-catch
,提高容错性SsoUtil.singleLogout
改为 SsoUtil.ssoLogout
,且无需再提供 secretkey 参数 [不向下兼容]
sa-token-jwt
的创建,强制校验loginType [不向下兼容]
StpLogicJwtForStateless
由重写 login 方法改为重写 createLoginSessionSaJwtUtil
工具类不再吞并异常消息,且提供精细化异常 code 码。StpLogicJwtForSimple
模式下 Extra 数据可能受到旧 token 影响的bugdeleteAccessTokenIndex
回收 token 不彻底的bug。pastClientTokenTimeout
,用于指定 PastClientToken 默认有效期。StpUtil.renewTimeout(100);
方法,用于 Token 的 Timeout 值续期。updateObject
无效的bugsa-token-jwt
插件,用于与jwt的整合 [重要]
sa-token-context-dubbo
插件,用于与 Dubbo 的整合 [重要]
getSaTokenDao()
方法,方便重写getDeviceOrDefault
secure
、httpOnly
、sameSite
等属性的配置 [重要]
StpUtil.hasPermissionAnd
、StpUtil.hasPermissionOr
StpUtil.hasRoleAnd
、StpUtil.hasRoleOr
StpUtil.getRoleList()
和 StpUtil.getPermissionList()
方法StpUtil.logoutByLoginId()
更换为 StpUtil.kickout()
;Http Basic
认证 [重要]
SSO-Server
端前后端分离示例 [重要]
SaRequest
新增getHeader(name, defaultValue)
方法,用于获取header默认值SaRequest
添加 forward
转发方法Sa-Token-Study
链接,讲解 Sa-Token 源码涉及到的技术点SaReactorHolder.getContent()
拼写错误:content
-> context
Sa-Id-Token
模块,解决微服务内部调用鉴权 [重要]
StpLogic
SaSsoHandle
大幅度简化单点登录整合步骤 [重要]
Sa-Token-Alone-Redis
独立Redis插件 [重要]
SaRouter.back()
函数,用于停止匹配返回结果[spring.sa-token.]
改为 [sa-token.]
,目前版本暂时向下兼容,请尽快更新@刘西东
提供的pr [重要]
SaRouter.stop()
函数,用于一次性跳出匹配链功能 [重要]
sa-token-temp-jwt
模块整合jwt临时令牌鉴权 [重要]
SaSession.get()
增加缓存API,简化代码Spring Cloud Bus
与 Sa-Token
冲突的问题 [重要]
SaServletFilter
异常函数中无法自定义Content-Type
的问题StpUtil.setLoginId(id)
-> StpUtil.login(id)
StpUtil.getLoginKey()
-> StpUtil.getLoginType()
(注意其它所有地方的LoginKey
均已更改为loginType
)SaRouterUtil
-> SaRouter
allowConcurrentLogin
-> isConcurrent
isV
-> isPrint
@Deprecated
注解,请尽快更新至新APIplugin
模块 [重要]
sa-token-quick-login
插件,零代码集成登录功能 [重要]
@FunctionalInterface
注解,感谢群友@MrXionGe
提供的建议SaRequest
中缺少getMethod()
的bug@N
的建议beforAuth
前置函数@dlwlrma
提供的建议SaHolder
上下文持有类,可方便的在上下文中读写数据SaTokenManager
-> SaManager
SaTokenInsideUtil
-> SaFoxUtil