类 StpLogic
java.lang.Object
cn.dev33.satoken.stp.StpLogic
Sa-Token 权限认证,逻辑实现类
Sa-Token 的核心,框架大多数功能均由此类提供具体逻辑实现。
- 从以下版本开始:
- 1.10.0
- 作者:
- click33
-
字段概要
字段 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明void检查当前 token 是否已被冻结,如果是则抛出异常voidcheckActiveTimeout(String tokenValue) 检查指定 token 是否已被冻结,如果是则抛出异常void根据注解 ( @SaCheckDisable ) 鉴权void根据注解 ( @SaCheckLogin ) 鉴权void根据注解 ( @SaCheckPermission ) 鉴权void根据注解 ( @SaCheckRole ) 鉴权void根据注解 ( @SaCheckSafe ) 鉴权voidcheckDisable(Object loginId) 校验:指定账号是否已被封禁,如果被封禁则抛出异常voidcheckDisable(Object loginId, String... services) 校验:指定账号 指定服务 是否已被封禁,如果被封禁则抛出异常voidcheckDisableLevel(Object loginId, int level) 校验:指定账号是否已被封禁到指定等级(如果已经达到,则抛出异常)voidcheckDisableLevel(Object loginId, String service, int level) 校验:指定账号的指定服务,是否已被封禁到指定等级(如果已经达到,则抛出异常)void检验当前会话是否已经登录,如未登录,则抛出异常protected voidcheckLoginArgs(Object id, SaLoginModel loginModel) 校验登录时的参数有效性,如果有问题会打印警告或抛出异常voidcheckPermission(String permission) 校验:当前账号是否含有指定权限, 如果验证未通过,则抛出异常: NotPermissionExceptionvoidcheckPermissionAnd(String... permissionArray) 校验:当前账号是否含有指定权限 [ 指定多个,必须全部验证通过 ]voidcheckPermissionOr(String... permissionArray) 校验:当前账号是否含有指定权限 [ 指定多个,只要其一验证通过即可 ]void校验:当前账号是否含有指定角色标识, 如果验证未通过,则抛出异常: NotRoleExceptionvoidcheckRoleAnd(String... roleArray) 校验:当前账号是否含有指定角色标识 [ 指定多个,必须全部验证通过 ]voidcheckRoleOr(String... roleArray) 校验:当前账号是否含有指定角色标识 [ 指定多个,只要其一验证通过即可 ]void校验:当前会话是否已通过二级认证,如未通过则抛出异常void校验:检查当前会话是否已通过指定业务的二级认证,如未通过则抛出异常protected voidclearLastActive(String tokenValue) 清除指定 Token 的 [ 最后活跃时间记录 ]void在当前会话 结束二级认证void在当前会话 结束指定业务标识的二级认证创建指定账号 id 的登录会话数据createLoginSession(Object id, SaLoginModel loginModel) 创建指定账号 id 的登录会话数据为指定账号创建一个 token (只是把 token 创建出来,并不持久化存储)voiddeleteTokenSession(String tokenValue) 删除指定 token 的 Token-SessionvoiddeleteTokenToIdMapping(String tokenValue) 删除 token - id 映射void封禁:指定账号void封禁:指定账号的指定服务voiddisableLevel(Object loginId, int level, long time) 封禁:指定账号,并指定封禁等级voiddisableLevel(Object loginId, String service, int level, long time) 封禁:指定账号的指定服务,并指定封禁等级protected StringdistUsableToken(Object id, SaLoginModel loginModel) 为指定账号 id 的登录操作,分配一个可用的 tokenvoid结束临时切换身份获取当前匿名 Token-Session (可在未登录情况下使用的Token-Session)getAnonTokenSession(boolean isCreate) 获取当前匿名 Token-Session (可在未登录情况下使用的 Token-Session)返回当前 StpLogic 使用的配置对象,如果当前 StpLogic 没有配置,则返回 nullint返回全局配置的 Cookie 保存时长,单位:秒 (根据全局 timeout 计算)boolean返回全局配置对象的 isShare 属性int返回全局配置的 maxTryTimes 值,在每次创建 token 时,对其唯一性测试的最高次数(-1=不测试)返回当前 StpLogic 使用的配置对象,如果当前 StpLogic 没有配置,则返回全局配置对象intgetDisableLevel(Object loginId) 获取:指定账号被封禁的等级,如果未被封禁则返回-2intgetDisableLevel(Object loginId, String service) 获取:指定账号的 指定服务 被封禁的等级,如果未被封禁则返回-2longgetDisableTime(Object loginId) 获取:指定账号剩余封禁时间,单位:秒(-1=永久封禁,-2=未被封禁)longgetDisableTime(Object loginId, String service) 获取:指定账号 指定服务 剩余封禁时间,单位:秒(-1=永久封禁,-2=未被封禁)获取当前 Token 的扩展信息(此函数只在jwt模式下生效)获取指定 Token 的扩展信息(此函数只在jwt模式下生效)返回当前会话的登录设备类型获取当前会话账号id,如果未登录,则抛出异常<T> TgetLoginId(T defaultValue) 获取当前会话账号id, 如果未登录,则返回默认值int获取当前会话账号id, 并转换为 int 类型long获取当前会话账号id, 并转换为 long 类型获取当前会话账号id, 并转换为 String 类型getLoginIdByToken(String tokenValue) 获取指定 token 对应的账号id,如果未登录,则返回 null获取当前会话账号id, 如果未登录,则返回nullgetLoginIdNotHandle(String tokenValue) 获取指定 token 对应的账号id (不做任何特殊处理)获取当前 StpLogic 账号类型标识获取:当前账号的权限码集合getPermissionList(Object loginId) 获取:指定账号的权限码集合获取:当前账号的角色集合getRoleList(Object loginId) 获取:指定账号的角色集合long获取:当前会话的二级认证剩余有效时间(单位: 秒, 返回-2代表尚未通过二级认证)longgetSafeTime(String service) 获取:当前会话的二级认证剩余有效时间(单位: 秒, 返回-2代表尚未通过二级认证)返回当前 StpLogic 使用的持久化对象获取当前已登录账号的 Account-Session,如果该 SaSession 尚未创建,则新建并返回getSession(boolean isCreate) 获取当前已登录账号的 Account-Session, 如果该 SaSession 尚未创建,isCreate=是否新建并返回getSessionByLoginId(Object loginId) 获取指定账号 id 的 Account-Session,如果该 SaSession 尚未创建,则新建并返回getSessionByLoginId(Object loginId, boolean isCreate) 获取指定账号 id 的 Account-Session, 如果该 SaSession 尚未创建,isCreate=是否新建并返回getSessionBySessionId(String sessionId) 获取指定 key 的 SaSession, 如果该 SaSession 尚未创建,则返回 nullgetSessionBySessionId(String sessionId, boolean isCreate, Consumer<SaSession> appendOperation) 获取指定 key 的 SaSession, 如果该 SaSession 尚未创建,isCreate = 是否立即新建并返回long获取当前登录账号的 Account-Session 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)longgetSessionTimeoutByLoginId(Object loginId) 获取指定账号 id 的 Account-Session 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)返回 [ 身份临时切换 ] 的 loginIdlong获取当前 token 剩余活跃有效期:当前 token 距离被冻结还剩多少时间(单位: 秒,返回 -1 代表永不冻结,-2 代表没有这个值或 token 已被冻结了)longgetTokenActiveTimeoutByToken(String tokenValue) 获取指定 token 剩余活跃有效期:这个 token 距离被冻结还剩多少时间(单位: 秒,返回 -1 代表永不冻结,-2 代表没有这个值或 token 已被冻结了)获取当前会话的 token 参数信息返回 token 名称,此名称在以下地方体现:Cookie 保存 token 时的名称、提交 token 时参数的名称、存储 token 时的 key 前缀获取当前 token 的 Token-Session,如果该 SaSession 尚未创建,则新建并返回getTokenSession(boolean isCreate) 获取当前 token 的 Token-Session,如果该 SaSession 尚未创建,isCreate代表是否新建并返回getTokenSessionByToken(String tokenValue) 获取指定 token 的 Token-Session,如果该 SaSession 尚未创建,则新建并返回getTokenSessionByToken(String tokenValue, boolean isCreate) 获取指定 token 的 Token-Session,如果该 SaSession 尚未创建,isCreate代表是否新建并返回long获取当前 token 的 Token-Session 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)longgetTokenSessionTimeoutByTokenValue(String tokenValue) 获取指定 token 的 Token-Session 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)getTokenSignListByLoginId(Object loginId, String device) 获取指定账号 id 指定设备类型端的 tokenSign 集合long获取当前会话 token 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)longgetTokenTimeout(String token) 获取指定 token 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)longgetTokenTimeoutByLoginId(Object loginId) 获取指定账号 id 的 token 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)getTokenUseActiveTimeout(String tokenValue) 获取指定 token 在缓存中的 activeTimeout 值,如果不存在则返回 nulllonggetTokenUseActiveTimeoutOrGlobalConfig(String tokenValue) 获取指定 token 在缓存中的 activeTimeout 值,如果不存在则返回全局配置的 activeTimeout 值获取当前请求的 token 值getTokenValue(boolean noPrefixThrowException) 获取当前请求的 token 值getTokenValueByLoginId(Object loginId) 获取指定账号 id 的 tokengetTokenValueByLoginId(Object loginId, String device) 获取指定账号 id 指定设备类型端的 tokengetTokenValueListByLoginId(Object loginId) 获取指定账号 id 的 token 集合getTokenValueListByLoginId(Object loginId, String device) 获取指定账号 id 指定设备类型端的 token 集合获取当前请求的 token 值 (不裁剪前缀)获取当前请求的 token 值,如果获取不到则抛出异常booleanhasElement(List<String> list, String element) 判断:集合中是否包含指定元素(模糊匹配)booleanhasPermission(Object loginId, String permission) 判断:指定账号 id 是否含有指定权限, 返回 true 或 falsebooleanhasPermission(String permission) 判断:当前账号是否含有指定权限, 返回 true 或 falsebooleanhasPermissionAnd(String... permissionArray) 判断:当前账号是否含有指定权限 [ 指定多个,必须全部具有 ]booleanhasPermissionOr(String... permissionArray) 判断:当前账号是否含有指定权限 [ 指定多个,只要其一验证通过即可 ]boolean判断:指定账号是否含有指定角色标识, 返回 true 或 falseboolean判断:当前账号是否拥有指定角色, 返回 true 或 falsebooleanhasRoleAnd(String... roleArray) 判断:当前账号是否含有指定角色标识 [ 指定多个,必须全部验证通过 ]boolean判断:当前账号是否含有指定角色标识 [ 指定多个,只要其一验证通过即可 ]boolean判断:指定账号是否已被封禁 (true=已被封禁, false=未被封禁)boolean判断:指定账号的指定服务 是否已被封禁(true=已被封禁, false=未被封禁)booleanisDisableLevel(Object loginId, int level) 判断:指定账号是否已被封禁到指定等级booleanisDisableLevel(Object loginId, String service, int level) 判断:指定账号的指定服务,是否已被封禁到指定等级booleanisLogin()判断当前会话是否已经登录boolean判断指定账号是否已经登录boolean返回全局配置是否开启了 Token 活跃度校验,返回 true 代表已打开,返回 false 代表不打开,此时永不冻结 tokenbooleanisSafe()判断:当前会话是否处于二级认证时间内boolean判断:当前会话 是否处于指定业务的二级认证时间内boolean判断:指定 token 是否处于二级认证时间内boolean当前 StpLogic 对象是否支持 token 扩展参数booleanisSwitch()判断当前请求是否正处于 [ 身份临时切换 ] 中booleanisValidLoginId(Object loginId) 判断一个 loginId 是否是有效的void踢人下线,根据账号idvoid踢人下线,根据账号id 和 设备类型voidkickoutByTokenValue(String tokenValue) 踢人下线,根据指定 tokenvoid会话登录void会话登录,并指定是否 [记住我]void会话登录,并指定此次登录 token 的有效期, 单位:秒voidlogin(Object id, SaLoginModel loginModel) 会话登录,并指定所有登录参数 Modelvoid会话登录,并指定登录设备类型voidlogout()在当前客户端会话注销void会话注销,根据账号idvoid会话注销,根据账号id 和 设备类型voidlogoutByMaxLoginCount(Object loginId, SaSession session, String device, int maxLoginCount) 如果指定账号 id、设备类型的登录客户端已经超过了指定数量,则按照登录时间顺序,把最开始登录的给注销掉voidlogoutByTokenValue(String tokenValue) 会话注销,根据指定 TokenvoidopenSafe(long safeTime) 在当前会话 开启二级认证void在当前会话 开启二级认证voidrenewTimeout(long timeout) 对当前 token 的 timeout 值进行续期voidrenewTimeout(String tokenValue, long timeout) 对指定 token 的 timeout 值进行续期void顶人下线,根据账号id 和 设备类型voidsaveTokenToIdMapping(String tokenValue, Object loginId, long timeout) 存储 token - id 映射关系searchSessionId(String keyword, int start, int size, boolean sortType) 根据条件查询缓存中所有的 SessionIdsearchTokenSessionId(String keyword, int start, int size, boolean sortType) 根据条件查询缓存中所有的 Token-Session-IdsearchTokenValue(String keyword, int start, int size, boolean sortType) 根据条件查询缓存中所有的 tokensetConfig(SaTokenConfig config) 写入当前 StpLogic 单独使用的配置对象protected voidsetLastActiveToNow(String tokenValue, Long activeTimeout, Long timeout) 写入指定 token 的 [ 最后活跃时间 ] 为当前时间戳 √√√setLoginType(String loginType) 安全的重置当前账号类型voidsetTokenValue(String tokenValue) 在当前会话写入指定 token 值voidsetTokenValue(String tokenValue, int cookieTimeout) 在当前会话写入指定 token 值voidsetTokenValue(String tokenValue, SaLoginModel loginModel) 在当前会话写入指定 token 值voidsetTokenValueToCookie(String tokenValue, int cookieTimeout) 将 token 写入到当前会话的 Cookie 里voidsetTokenValueToResponseHeader(String tokenValue) 将 token 写入到当前请求的响应头中voidsetTokenValueToStorage(String tokenValue) 将 token 写入到当前请求的 Storage 存储器里splicingKeyDisable(Object loginId, String service) 拼接: 在保存服务封禁标记时,应该使用的 key如果 token 为本次请求新创建的,则以此字符串为 key 存储在当前 request 中splicingKeyLastActiveTime(String tokenValue) 拼接: 在保存 token 最后活跃时间时,应该使用的 keysplicingKeySafe(String tokenValue, String service) 拼接: 在保存业务二级认证标记时,应该使用的 keysplicingKeySession(Object loginId) 拼接: 在保存 Account-Session 时,应该使用的 key拼接:在进行临时身份切换时,应该使用的 key获取:客户端 tokenNamesplicingKeyTokenSession(String tokenValue) 拼接:在保存 Token-Session 时,应该使用的 keysplicingKeyTokenValue(String tokenValue) 拼接: 在保存 token - id 映射关系时,应该使用的keyvoid临时切换身份为指定账号idvoidswitchTo(Object loginId, SaFunction function) 在一个 lambda 代码段里,临时切换身份为指定账号id,lambda 结束后自动恢复voiduntieDisable(Object loginId) 解封:指定账号voiduntieDisable(Object loginId, String... services) 解封:指定账号、指定服务void续签当前 token:(将 [最后操作时间] 更新为当前时间戳)voidupdateLastActiveToNow(String tokenValue) 续签指定 token:将这个 token 的 [ 最后活跃时间 ] 更新为当前时间戳voidupdateTokenToIdMapping(String tokenValue, Object loginId) 更改 token - id 映射关系
-
字段详细资料
-
loginType
账号类型标识,多账号体系时(一个系统多套用户表)用此值区分具体要校验的是哪套用户,比如:login、user、admin
-
-
构造器详细资料
-
StpLogic
初始化 StpLogic, 并指定账号类型- 参数:
loginType- 账号类型标识
-
-
方法详细资料
-
getLoginType
获取当前 StpLogic 账号类型标识- 返回:
- /
-
setLoginType
安全的重置当前账号类型- 参数:
loginType- 账号类型标识- 返回:
- 对象自身
-
setConfig
写入当前 StpLogic 单独使用的配置对象- 参数:
config- 配置对象- 返回:
- 对象自身
-
getConfig
返回当前 StpLogic 使用的配置对象,如果当前 StpLogic 没有配置,则返回 null- 返回:
- /
-
getConfigOrGlobal
返回当前 StpLogic 使用的配置对象,如果当前 StpLogic 没有配置,则返回全局配置对象- 返回:
- /
-
getTokenName
返回 token 名称,此名称在以下地方体现:Cookie 保存 token 时的名称、提交 token 时参数的名称、存储 token 时的 key 前缀- 返回:
- /
-
createTokenValue
public String createTokenValue(Object loginId, String device, long timeout, Map<String, Object> extraData) 为指定账号创建一个 token (只是把 token 创建出来,并不持久化存储)- 参数:
loginId- 账号iddevice- 设备类型timeout- 过期时间extraData- 扩展信息- 返回:
- 生成的tokenValue
-
setTokenValue
在当前会话写入指定 token 值- 参数:
tokenValue- token 值
-
setTokenValue
在当前会话写入指定 token 值- 参数:
tokenValue- token 值cookieTimeout- Cookie存活时间(秒)
-
setTokenValue
在当前会话写入指定 token 值- 参数:
tokenValue- token 值loginModel- 登录参数
-
setTokenValueToStorage
将 token 写入到当前请求的 Storage 存储器里- 参数:
tokenValue- 要保存的 token 值
-
setTokenValueToCookie
将 token 写入到当前会话的 Cookie 里- 参数:
tokenValue- token 值cookieTimeout- Cookie存活时间(单位:秒,填-1代表为内存Cookie,浏览器关闭后消失)
-
setTokenValueToResponseHeader
将 token 写入到当前请求的响应头中- 参数:
tokenValue- token 值
-
getTokenValue
获取当前请求的 token 值- 返回:
- 当前tokenValue
-
getTokenValue
获取当前请求的 token 值- 参数:
noPrefixThrowException- 如果提交的 token 不带有指定的前缀,是否抛出异常- 返回:
- 当前tokenValue
-
getTokenValueNotCut
获取当前请求的 token 值 (不裁剪前缀)- 返回:
- /
-
getTokenValueNotNull
获取当前请求的 token 值,如果获取不到则抛出异常- 返回:
- /
-
getTokenInfo
获取当前会话的 token 参数信息- 返回:
- token 参数信息
-
login
会话登录- 参数:
id- 账号id,建议的类型:(long | int | String)
-
login
会话登录,并指定登录设备类型- 参数:
id- 账号id,建议的类型:(long | int | String)device- 设备类型
-
login
会话登录,并指定是否 [记住我]- 参数:
id- 账号id,建议的类型:(long | int | String)isLastingCookie- 是否为持久Cookie,值为 true 时记住我,值为 false 时关闭浏览器需要重新登录
-
login
会话登录,并指定此次登录 token 的有效期, 单位:秒- 参数:
id- 账号id,建议的类型:(long | int | String)timeout- 此次登录 token 的有效期, 单位:秒
-
login
会话登录,并指定所有登录参数 Model- 参数:
id- 账号id,建议的类型:(long | int | String)loginModel- 此次登录的参数Model
-
createLoginSession
创建指定账号 id 的登录会话数据- 参数:
id- 账号id,建议的类型:(long | int | String)- 返回:
- 返回会话令牌
-
createLoginSession
创建指定账号 id 的登录会话数据- 参数:
id- 账号id,建议的类型:(long | int | String)loginModel- 此次登录的参数Model- 返回:
- 返回会话令牌
-
distUsableToken
为指定账号 id 的登录操作,分配一个可用的 token- 参数:
id- 账号idloginModel- 此次登录的参数Model- 返回:
- 返回 token
-
checkLoginArgs
校验登录时的参数有效性,如果有问题会打印警告或抛出异常- 参数:
id- 账号idloginModel- 此次登录的参数Model
-
logout
public void logout()在当前客户端会话注销 -
logout
会话注销,根据账号id- 参数:
loginId- 账号id
-
logout
会话注销,根据账号id 和 设备类型- 参数:
loginId- 账号iddevice- 设备类型 (填 null 代表注销该账号的所有设备类型)
-
logoutByMaxLoginCount
public void logoutByMaxLoginCount(Object loginId, SaSession session, String device, int maxLoginCount) 如果指定账号 id、设备类型的登录客户端已经超过了指定数量,则按照登录时间顺序,把最开始登录的给注销掉- 参数:
loginId- 账号idsession- 此账号的 Account-Session 对象,可填写 null,框架将自动获取device- 设备类型(填 null 代表注销此账号所有设备类型的登录)maxLoginCount- 最大登录数量,超过此数量的将被注销
-
logoutByTokenValue
会话注销,根据指定 Token- 参数:
tokenValue- 指定 token
-
kickout
踢人下线,根据账号id当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-5
- 参数:
loginId- 账号id
-
kickout
踢人下线,根据账号id 和 设备类型当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-5
- 参数:
loginId- 账号iddevice- 设备类型 (填 null 代表踢出该账号的所有设备类型)
-
kickoutByTokenValue
踢人下线,根据指定 token当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-5
- 参数:
tokenValue- 指定 token
-
replaced
顶人下线,根据账号id 和 设备类型当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-4
- 参数:
loginId- 账号iddevice- 设备类型 (填 null 代表顶替该账号的所有设备类型)
-
isLogin
public boolean isLogin()判断当前会话是否已经登录- 返回:
- 已登录返回 true,未登录返回 false
-
isLogin
判断指定账号是否已经登录- 返回:
- 已登录返回 true,未登录返回 false
-
checkLogin
public void checkLogin()检验当前会话是否已经登录,如未登录,则抛出异常 -
getLoginId
获取当前会话账号id,如果未登录,则抛出异常- 返回:
- 账号id
-
getLoginId
public <T> T getLoginId(T defaultValue) 获取当前会话账号id, 如果未登录,则返回默认值- 类型参数:
T- 返回类型- 参数:
defaultValue- 默认值- 返回:
- 登录id
-
getLoginIdDefaultNull
获取当前会话账号id, 如果未登录,则返回null- 返回:
- 账号id
-
getLoginIdAsString
获取当前会话账号id, 并转换为 String 类型- 返回:
- 账号id
-
getLoginIdAsInt
public int getLoginIdAsInt()获取当前会话账号id, 并转换为 int 类型- 返回:
- 账号id
-
getLoginIdAsLong
public long getLoginIdAsLong()获取当前会话账号id, 并转换为 long 类型- 返回:
- 账号id
-
getLoginIdByToken
获取指定 token 对应的账号id,如果未登录,则返回 null- 参数:
tokenValue- token- 返回:
- 账号id
-
getLoginIdNotHandle
获取指定 token 对应的账号id (不做任何特殊处理)- 参数:
tokenValue- token 值- 返回:
- 账号id
-
getExtra
获取当前 Token 的扩展信息(此函数只在jwt模式下生效)- 参数:
key- 键值- 返回:
- 对应的扩展数据
-
getExtra
获取指定 Token 的扩展信息(此函数只在jwt模式下生效)- 参数:
tokenValue- 指定的 Token 值key- 键值- 返回:
- 对应的扩展数据
-
isValidLoginId
判断一个 loginId 是否是有效的- 参数:
loginId- 账号id- 返回:
- /
-
saveTokenToIdMapping
存储 token - id 映射关系- 参数:
tokenValue- token值loginId- 账号idtimeout- 会话有效期 (单位: 秒)
-
updateTokenToIdMapping
更改 token - id 映射关系- 参数:
tokenValue- token值loginId- 新的账号Id值
-
deleteTokenToIdMapping
删除 token - id 映射- 参数:
tokenValue- token值
-
getSessionBySessionId
public SaSession getSessionBySessionId(String sessionId, boolean isCreate, Consumer<SaSession> appendOperation) 获取指定 key 的 SaSession, 如果该 SaSession 尚未创建,isCreate = 是否立即新建并返回- 参数:
sessionId- SessionIdisCreate- 是否新建appendOperation- 如果这个 SaSession 是新建的,则要追加执行的动作- 返回:
- Session对象
-
getSessionBySessionId
获取指定 key 的 SaSession, 如果该 SaSession 尚未创建,则返回 null- 参数:
sessionId- SessionId- 返回:
- Session对象
-
getSessionByLoginId
获取指定账号 id 的 Account-Session, 如果该 SaSession 尚未创建,isCreate=是否新建并返回- 参数:
loginId- 账号idisCreate- 是否新建- 返回:
- SaSession 对象
-
getSessionByLoginId
获取指定账号 id 的 Account-Session,如果该 SaSession 尚未创建,则新建并返回- 参数:
loginId- 账号id- 返回:
- SaSession 对象
-
getSession
获取当前已登录账号的 Account-Session, 如果该 SaSession 尚未创建,isCreate=是否新建并返回- 参数:
isCreate- 是否新建- 返回:
- Session对象
-
getSession
获取当前已登录账号的 Account-Session,如果该 SaSession 尚未创建,则新建并返回- 返回:
- Session对象
-
getTokenSessionByToken
获取指定 token 的 Token-Session,如果该 SaSession 尚未创建,isCreate代表是否新建并返回- 参数:
tokenValue- token值isCreate- 是否新建- 返回:
- session对象
-
getTokenSessionByToken
获取指定 token 的 Token-Session,如果该 SaSession 尚未创建,则新建并返回- 参数:
tokenValue- Token值- 返回:
- Session对象
-
getTokenSession
获取当前 token 的 Token-Session,如果该 SaSession 尚未创建,isCreate代表是否新建并返回- 参数:
isCreate- 是否新建- 返回:
- Session对象
-
getTokenSession
获取当前 token 的 Token-Session,如果该 SaSession 尚未创建,则新建并返回- 返回:
- Session对象
-
getAnonTokenSession
获取当前匿名 Token-Session (可在未登录情况下使用的 Token-Session)- 参数:
isCreate- 在 Token-Session 尚未创建的情况是否新建并返回- 返回:
- Token-Session 对象
-
getAnonTokenSession
获取当前匿名 Token-Session (可在未登录情况下使用的Token-Session)- 返回:
- Token-Session 对象
-
deleteTokenSession
删除指定 token 的 Token-Session- 参数:
tokenValue- token值
-
setLastActiveToNow
写入指定 token 的 [ 最后活跃时间 ] 为当前时间戳 √√√- 参数:
tokenValue- 指定tokenactiveTimeout- 这个 token 的最低活跃频率,单位:秒,填 null 代表使用全局配置的 activeTimeout 值timeout- 保存数据时使用的 ttl 值,单位:秒,填 null 代表使用全局配置的 timeout 值
-
updateLastActiveToNow
续签指定 token:将这个 token 的 [ 最后活跃时间 ] 更新为当前时间戳- 参数:
tokenValue- 指定token
-
updateLastActiveToNow
public void updateLastActiveToNow()续签当前 token:(将 [最后操作时间] 更新为当前时间戳)请注意: 即使 token 已被冻结 也可续签成功, 如果此场景下需要提示续签失败,可在此之前调用 checkActiveTimeout() 强制检查是否冻结即可
-
clearLastActive
清除指定 Token 的 [ 最后活跃时间记录 ]- 参数:
tokenValue- 指定 token
-
checkActiveTimeout
检查指定 token 是否已被冻结,如果是则抛出异常- 参数:
tokenValue- 指定 token
-
checkActiveTimeout
public void checkActiveTimeout()检查当前 token 是否已被冻结,如果是则抛出异常 -
getTokenUseActiveTimeout
获取指定 token 在缓存中的 activeTimeout 值,如果不存在则返回 null- 参数:
tokenValue- 指定token- 返回:
- /
-
getTokenUseActiveTimeoutOrGlobalConfig
获取指定 token 在缓存中的 activeTimeout 值,如果不存在则返回全局配置的 activeTimeout 值- 参数:
tokenValue- 指定token- 返回:
- /
-
getTokenTimeout
public long getTokenTimeout()获取当前会话 token 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)- 返回:
- token剩余有效时间
-
getTokenTimeout
获取指定 token 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)- 参数:
token- 指定token- 返回:
- token剩余有效时间
-
getTokenTimeoutByLoginId
获取指定账号 id 的 token 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)- 参数:
loginId- 指定loginId- 返回:
- token剩余有效时间
-
getSessionTimeout
public long getSessionTimeout()获取当前登录账号的 Account-Session 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)- 返回:
- token剩余有效时间
-
getSessionTimeoutByLoginId
获取指定账号 id 的 Account-Session 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)- 参数:
loginId- 指定loginId- 返回:
- token剩余有效时间
-
getTokenSessionTimeout
public long getTokenSessionTimeout()获取当前 token 的 Token-Session 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)- 返回:
- token剩余有效时间
-
getTokenSessionTimeoutByTokenValue
获取指定 token 的 Token-Session 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)- 参数:
tokenValue- 指定token- 返回:
- token 剩余有效时间
-
getTokenActiveTimeout
public long getTokenActiveTimeout()获取当前 token 剩余活跃有效期:当前 token 距离被冻结还剩多少时间(单位: 秒,返回 -1 代表永不冻结,-2 代表没有这个值或 token 已被冻结了)- 返回:
- /
-
getTokenActiveTimeoutByToken
获取指定 token 剩余活跃有效期:这个 token 距离被冻结还剩多少时间(单位: 秒,返回 -1 代表永不冻结,-2 代表没有这个值或 token 已被冻结了)- 参数:
tokenValue- 指定 token- 返回:
- /
-
renewTimeout
public void renewTimeout(long timeout) 对当前 token 的 timeout 值进行续期- 参数:
timeout- 要修改成为的有效时间 (单位: 秒)
-
renewTimeout
对指定 token 的 timeout 值进行续期- 参数:
tokenValue- 指定 tokentimeout- 要修改成为的有效时间 (单位: 秒,填 -1 代表要续为永久有效)
-
getRoleList
获取:当前账号的角色集合- 返回:
- /
-
getRoleList
获取:指定账号的角色集合- 参数:
loginId- 指定账号id- 返回:
- /
-
hasRole
判断:当前账号是否拥有指定角色, 返回 true 或 false- 参数:
role- 角色- 返回:
- /
-
hasRole
判断:指定账号是否含有指定角色标识, 返回 true 或 false- 参数:
loginId- 账号idrole- 角色标识- 返回:
- 是否含有指定角色标识
-
hasRoleAnd
判断:当前账号是否含有指定角色标识 [ 指定多个,必须全部验证通过 ]- 参数:
roleArray- 角色标识数组- 返回:
- true或false
-
hasRoleOr
判断:当前账号是否含有指定角色标识 [ 指定多个,只要其一验证通过即可 ]- 参数:
roleArray- 角色标识数组- 返回:
- true或false
-
checkRole
校验:当前账号是否含有指定角色标识, 如果验证未通过,则抛出异常: NotRoleException- 参数:
role- 角色标识
-
checkRoleAnd
校验:当前账号是否含有指定角色标识 [ 指定多个,必须全部验证通过 ]- 参数:
roleArray- 角色标识数组
-
checkRoleOr
校验:当前账号是否含有指定角色标识 [ 指定多个,只要其一验证通过即可 ]- 参数:
roleArray- 角色标识数组
-
getPermissionList
获取:当前账号的权限码集合- 返回:
- /
-
getPermissionList
获取:指定账号的权限码集合- 参数:
loginId- 指定账号id- 返回:
- /
-
hasPermission
判断:当前账号是否含有指定权限, 返回 true 或 false- 参数:
permission- 权限码- 返回:
- 是否含有指定权限
-
hasPermission
判断:指定账号 id 是否含有指定权限, 返回 true 或 false- 参数:
loginId- 账号 idpermission- 权限码- 返回:
- 是否含有指定权限
-
hasPermissionAnd
判断:当前账号是否含有指定权限 [ 指定多个,必须全部具有 ]- 参数:
permissionArray- 权限码数组- 返回:
- true 或 false
-
hasPermissionOr
判断:当前账号是否含有指定权限 [ 指定多个,只要其一验证通过即可 ]- 参数:
permissionArray- 权限码数组- 返回:
- true 或 false
-
checkPermission
校验:当前账号是否含有指定权限, 如果验证未通过,则抛出异常: NotPermissionException- 参数:
permission- 权限码
-
checkPermissionAnd
校验:当前账号是否含有指定权限 [ 指定多个,必须全部验证通过 ]- 参数:
permissionArray- 权限码数组
-
checkPermissionOr
校验:当前账号是否含有指定权限 [ 指定多个,只要其一验证通过即可 ]- 参数:
permissionArray- 权限码数组
-
getTokenValueByLoginId
获取指定账号 id 的 token在配置为允许并发登录时,此方法只会返回队列的最后一个 token, 如果你需要返回此账号 id 的所有 token,请调用 getTokenValueListByLoginId
- 参数:
loginId- 账号id- 返回:
- token值
-
getTokenValueByLoginId
获取指定账号 id 指定设备类型端的 token在配置为允许并发登录时,此方法只会返回队列的最后一个 token, 如果你需要返回此账号 id 的所有 token,请调用 getTokenValueListByLoginId
- 参数:
loginId- 账号iddevice- 设备类型,填 null 代表不限设备类型- 返回:
- token值
-
getTokenValueListByLoginId
获取指定账号 id 的 token 集合- 参数:
loginId- 账号id- 返回:
- 此 loginId 的所有相关 token
-
getTokenValueListByLoginId
获取指定账号 id 指定设备类型端的 token 集合- 参数:
loginId- 账号iddevice- 设备类型,填 null 代表不限设备类型- 返回:
- 此 loginId 的所有登录 token
-
getTokenSignListByLoginId
获取指定账号 id 指定设备类型端的 tokenSign 集合- 参数:
loginId- 账号iddevice- 设备类型,填 null 代表不限设备类型- 返回:
- 此 loginId 的所有登录 token
-
getLoginDevice
返回当前会话的登录设备类型- 返回:
- 当前令牌的登录设备类型
-
searchTokenValue
根据条件查询缓存中所有的 token- 参数:
keyword- 关键字start- 开始处索引size- 获取数量 (-1代表一直获取到末尾)sortType- 排序类型(true=正序,false=反序)- 返回:
- token集合
-
searchSessionId
根据条件查询缓存中所有的 SessionId- 参数:
keyword- 关键字start- 开始处索引size- 获取数量 (-1代表一直获取到末尾)sortType- 排序类型(true=正序,false=反序)- 返回:
- sessionId集合
-
searchTokenSessionId
根据条件查询缓存中所有的 Token-Session-Id- 参数:
keyword- 关键字start- 开始处索引size- 获取数量 (-1代表一直获取到末尾)sortType- 排序类型(true=正序,false=反序)- 返回:
- sessionId集合
-
checkByAnnotation
根据注解 ( @SaCheckLogin ) 鉴权- 参数:
at- 注解对象
-
checkByAnnotation
根据注解 ( @SaCheckRole ) 鉴权- 参数:
at- 注解对象
-
checkByAnnotation
根据注解 ( @SaCheckPermission ) 鉴权- 参数:
at- 注解对象
-
checkByAnnotation
根据注解 ( @SaCheckSafe ) 鉴权- 参数:
at- 注解对象
-
checkByAnnotation
根据注解 ( @SaCheckDisable ) 鉴权- 参数:
at- 注解对象
-
disable
封禁:指定账号此方法不会直接将此账号id踢下线,如需封禁后立即掉线,请追加调用 StpUtil.logout(id)
- 参数:
loginId- 指定账号idtime- 封禁时间, 单位: 秒 (-1=永久封禁)
-
isDisable
判断:指定账号是否已被封禁 (true=已被封禁, false=未被封禁)- 参数:
loginId- 账号id- 返回:
- /
-
checkDisable
校验:指定账号是否已被封禁,如果被封禁则抛出异常- 参数:
loginId- 账号id
-
getDisableTime
获取:指定账号剩余封禁时间,单位:秒(-1=永久封禁,-2=未被封禁)- 参数:
loginId- 账号id- 返回:
- /
-
untieDisable
解封:指定账号- 参数:
loginId- 账号id
-
disable
封禁:指定账号的指定服务此方法不会直接将此账号id踢下线,如需封禁后立即掉线,请追加调用 StpUtil.logout(id)
- 参数:
loginId- 指定账号idservice- 指定服务time- 封禁时间, 单位: 秒 (-1=永久封禁)
-
isDisable
判断:指定账号的指定服务 是否已被封禁(true=已被封禁, false=未被封禁)- 参数:
loginId- 账号idservice- 指定服务- 返回:
- /
-
checkDisable
校验:指定账号 指定服务 是否已被封禁,如果被封禁则抛出异常- 参数:
loginId- 账号idservices- 指定服务,可以指定多个
-
getDisableTime
获取:指定账号 指定服务 剩余封禁时间,单位:秒(-1=永久封禁,-2=未被封禁)- 参数:
loginId- 账号idservice- 指定服务- 返回:
- see note
-
untieDisable
解封:指定账号、指定服务- 参数:
loginId- 账号idservices- 指定服务,可以指定多个
-
disableLevel
封禁:指定账号,并指定封禁等级- 参数:
loginId- 指定账号idlevel- 指定封禁等级time- 封禁时间, 单位: 秒 (-1=永久封禁)
-
disableLevel
封禁:指定账号的指定服务,并指定封禁等级- 参数:
loginId- 指定账号idservice- 指定封禁服务level- 指定封禁等级time- 封禁时间, 单位: 秒 (-1=永久封禁)
-
isDisableLevel
判断:指定账号是否已被封禁到指定等级- 参数:
loginId- 指定账号idlevel- 指定封禁等级- 返回:
- /
-
isDisableLevel
判断:指定账号的指定服务,是否已被封禁到指定等级- 参数:
loginId- 指定账号idservice- 指定封禁服务level- 指定封禁等级- 返回:
- /
-
checkDisableLevel
校验:指定账号是否已被封禁到指定等级(如果已经达到,则抛出异常)- 参数:
loginId- 指定账号idlevel- 封禁等级 (只有 封禁等级 ≥ 此值 才会抛出异常)
-
checkDisableLevel
校验:指定账号的指定服务,是否已被封禁到指定等级(如果已经达到,则抛出异常)- 参数:
loginId- 指定账号idservice- 指定封禁服务level- 封禁等级 (只有 封禁等级 ≥ 此值 才会抛出异常)
-
getDisableLevel
获取:指定账号被封禁的等级,如果未被封禁则返回-2- 参数:
loginId- 指定账号id- 返回:
- /
-
getDisableLevel
获取:指定账号的 指定服务 被封禁的等级,如果未被封禁则返回-2- 参数:
loginId- 指定账号idservice- 指定封禁服务- 返回:
- /
-
switchTo
临时切换身份为指定账号id- 参数:
loginId- 指定loginId
-
endSwitch
public void endSwitch()结束临时切换身份 -
isSwitch
public boolean isSwitch()判断当前请求是否正处于 [ 身份临时切换 ] 中- 返回:
- /
-
getSwitchLoginId
返回 [ 身份临时切换 ] 的 loginId- 返回:
- /
-
switchTo
在一个 lambda 代码段里,临时切换身份为指定账号id,lambda 结束后自动恢复- 参数:
loginId- 指定账号idfunction- 要执行的方法
-
openSafe
public void openSafe(long safeTime) 在当前会话 开启二级认证- 参数:
safeTime- 维持时间 (单位: 秒)
-
openSafe
在当前会话 开启二级认证- 参数:
service- 业务标识safeTime- 维持时间 (单位: 秒)
-
isSafe
public boolean isSafe()判断:当前会话是否处于二级认证时间内- 返回:
- true=二级认证已通过, false=尚未进行二级认证或认证已超时
-
isSafe
判断:当前会话 是否处于指定业务的二级认证时间内- 参数:
service- 业务标识- 返回:
- true=二级认证已通过, false=尚未进行二级认证或认证已超时
-
isSafe
判断:指定 token 是否处于二级认证时间内- 参数:
tokenValue- Token 值service- 业务标识- 返回:
- true=二级认证已通过, false=尚未进行二级认证或认证已超时
-
checkSafe
public void checkSafe()校验:当前会话是否已通过二级认证,如未通过则抛出异常 -
checkSafe
校验:检查当前会话是否已通过指定业务的二级认证,如未通过则抛出异常- 参数:
service- 业务标识
-
getSafeTime
public long getSafeTime()获取:当前会话的二级认证剩余有效时间(单位: 秒, 返回-2代表尚未通过二级认证)- 返回:
- 剩余有效时间
-
getSafeTime
获取:当前会话的二级认证剩余有效时间(单位: 秒, 返回-2代表尚未通过二级认证)- 参数:
service- 业务标识- 返回:
- 剩余有效时间
-
closeSafe
public void closeSafe()在当前会话 结束二级认证 -
closeSafe
在当前会话 结束指定业务标识的二级认证- 参数:
service- 业务标识
-
splicingKeyTokenName
获取:客户端 tokenName- 返回:
- key
-
splicingKeyTokenValue
拼接: 在保存 token - id 映射关系时,应该使用的key- 参数:
tokenValue- token值- 返回:
- key
-
splicingKeySession
拼接: 在保存 Account-Session 时,应该使用的 key- 参数:
loginId- 账号id- 返回:
- key
-
splicingKeyTokenSession
拼接:在保存 Token-Session 时,应该使用的 key- 参数:
tokenValue- token值- 返回:
- key
-
splicingKeyLastActiveTime
拼接: 在保存 token 最后活跃时间时,应该使用的 key- 参数:
tokenValue- token值- 返回:
- key
-
splicingKeySwitch
拼接:在进行临时身份切换时,应该使用的 key- 返回:
- key
-
splicingKeyJustCreatedSave
如果 token 为本次请求新创建的,则以此字符串为 key 存储在当前 request 中- 返回:
- key
-
splicingKeyDisable
拼接: 在保存服务封禁标记时,应该使用的 key- 参数:
loginId- 账号idservice- 具体封禁的服务- 返回:
- key
-
splicingKeySafe
拼接: 在保存业务二级认证标记时,应该使用的 key- 参数:
tokenValue- 要认证的 Tokenservice- 要认证的业务标识- 返回:
- key
-
getSaTokenDao
返回当前 StpLogic 使用的持久化对象- 返回:
- /
-
isOpenCheckActiveTimeout
public boolean isOpenCheckActiveTimeout()返回全局配置是否开启了 Token 活跃度校验,返回 true 代表已打开,返回 false 代表不打开,此时永不冻结 token- 返回:
- /
-
getConfigOfCookieTimeout
public int getConfigOfCookieTimeout()返回全局配置的 Cookie 保存时长,单位:秒 (根据全局 timeout 计算)- 返回:
- Cookie 应该保存的时长
-
getConfigOfMaxTryTimes
public int getConfigOfMaxTryTimes()返回全局配置的 maxTryTimes 值,在每次创建 token 时,对其唯一性测试的最高次数(-1=不测试)- 返回:
- /
-
hasElement
判断:集合中是否包含指定元素(模糊匹配)- 参数:
list- 集合element- 元素- 返回:
- /
-
isSupportExtra
public boolean isSupportExtra()当前 StpLogic 对象是否支持 token 扩展参数- 返回:
- /
-