public class StpLogic
extends java.lang.Object
(stp = sa-token-permission 的缩写 )
| 限定符和类型 | 字段和说明 |
|---|---|
java.lang.String |
loginKey
持久化的key前缀,多账号认证体系时以此值区分,比如:login、user、admin
|
| 构造器和说明 |
|---|
StpLogic(java.lang.String loginKey)
初始化StpLogic, 并制定loginKey
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
checkActivityTimeout()
检查当前token 是否已经[临时过期],如果已经过期则抛出异常
|
void |
checkActivityTimeout(java.lang.String tokenValue)
检查指定token 是否已经[临时过期],如果已经过期则抛出异常
|
void |
checkLogin()
检验当前会话是否已经登录,如未登录,则抛出异常
|
void |
checkPermission(java.lang.String permission)
当前账号是否含有指定权限, 没有就抛出异常
|
void |
checkPermissionAnd(java.lang.String... permissionArray)
当前账号是否含有指定权限, [指定多个,必须全都有]
|
void |
checkPermissionOr(java.lang.String... permissionArray)
当前账号是否含有指定权限, [指定多个,有一个就可以通过]
|
void |
checkRole(java.lang.String role)
当前账号是否含有指定角色标识,没有就抛出异常
|
void |
checkRoleAnd(java.lang.String... roleArray)
当前账号是否含有指定角色标识, [指定多个,必须全都有]
|
void |
checkRoleOr(java.lang.String... roleArray)
当前账号是否含有指定角色标识, [指定多个,有一个就可以通过]
|
protected void |
clearLastActivity(java.lang.String tokenValue)
清除指定token的 [最后操作时间]
|
java.lang.String |
createTokenValue(java.lang.Object loginId)
随机生成一个tokenValue
|
SaTokenConfig |
getConfig()
返回配置对象
|
java.lang.String |
getKeyLastActivityTime(java.lang.String tokenValue)
获取key: 指定token的最后操作时间 持久化
|
java.lang.String |
getKeySession(java.lang.Object loginId)
获取key: session 持久化
|
java.lang.String |
getKeyTokenName()
获取key:客户端 tokenName
|
java.lang.String |
getKeyTokenSession(java.lang.String tokenValue)
获取key: tokenValue的专属session
|
java.lang.String |
getKeyTokenValue(java.lang.String tokenValue)
获取key: tokenValue 持久化 token-id
|
java.lang.String |
getLoginDevice()
返回当前token的登录设备
|
java.lang.Object |
getLoginId()
获取当前会话账号id, 如果未登录,则抛出异常
|
<T> T |
getLoginId(T defaultValue)
获取当前会话登录id, 如果未登录,则返回默认值
|
int |
getLoginIdAsInt()
获取当前会话登录id, 并转换为int
|
long |
getLoginIdAsLong()
获取当前会话登录id, 并转换为long
|
java.lang.String |
getLoginIdAsString()
获取当前会话登录id, 并转换为String
|
java.lang.Object |
getLoginIdByToken(java.lang.String tokenValue)
获取指定token对应的登录id,如果未登录,则返回 null
|
java.lang.Object |
getLoginIdDefaultNull()
获取当前会话登录id, 如果未登录,则返回null
|
java.lang.String |
getLoginKey()
获取当前StpLogin的loginKey
|
SaSession |
getSession()
获取当前会话的session,如果session尚未创建,则新建并返回
|
SaSession |
getSession(boolean isCreate)
获取当前会话的session, 如果session尚未创建,isCreate=是否新建并返回
|
SaSession |
getSessionByLoginId(java.lang.Object loginId)
获取指定loginId的session,如果session尚未创建,则新建并返回
|
SaSession |
getSessionByLoginId(java.lang.Object loginId,
boolean isCreate)
获取指定loginId的session, 如果session尚未创建,isCreate=是否新建并返回
|
SaSession |
getSessionBySessionId(java.lang.String sessionId)
获取指定key的session, 如果session尚未创建,则返回null
|
SaSession |
getSessionBySessionId(java.lang.String sessionId,
boolean isCreate)
获取指定key的session, 如果session尚未创建,isCreate=是否新建并返回
|
long |
getSessionTimeout()
获取当前登录者的Session剩余有效时间 (单位: 秒)
|
long |
getSessionTimeoutByLoginId(java.lang.Object loginId)
获取指定loginId的Session剩余有效时间 (单位: 秒)
|
long |
getTokenActivityTimeout()
获取当前token[临时过期]剩余有效时间 (单位: 秒)
|
long |
getTokenActivityTimeoutByToken(java.lang.String tokenValue)
获取指定token[临时过期]剩余有效时间 (单位: 秒)
|
SaTokenInfo |
getTokenInfo()
获取当前会话的token信息
|
java.lang.String |
getTokenName()
返回token名称
|
SaSession |
getTokenSession()
获取当前token的专属-session,如果session尚未创建,则新建并返回
|
SaSession |
getTokenSession(boolean isCreate)
获取当前token的专属-session,如果session尚未创建,isCreate代表是否新建并返回
|
SaSession |
getTokenSessionByToken(java.lang.String tokenValue)
获取指定token的专属session,如果session尚未创建,则新建并返回
|
SaSession |
getTokenSessionByToken(java.lang.String tokenValue,
boolean isCreate)
获取指定token的专属session,如果session尚未创建,isCreate代表是否新建并返回
|
long |
getTokenSessionTimeout()
获取当前token的专属Session剩余有效时间 (单位: 秒)
|
long |
getTokenSessionTimeoutByTokenValue(java.lang.String tokenValue)
获取指定token的专属Session剩余有效时间 (单位: 秒)
|
long |
getTokenTimeout()
获取当前登录者的token剩余有效时间 (单位: 秒)
|
long |
getTokenTimeoutByLoginId(java.lang.Object loginId)
获取指定loginId的token剩余有效时间 (单位: 秒)
|
java.lang.String |
getTokenValue()
获取当前tokenValue
|
java.lang.String |
getTokenValueByLoginId(java.lang.Object loginId)
获取指定loginId的tokenValue
在配置为允许并发登录时,此方法只会返回队列的最后一个token,
如果你需要返回此账号id的所有token,请调用 getTokenValueListByLoginId
|
java.lang.String |
getTokenValueByLoginId(java.lang.Object loginId,
java.lang.String device)
获取指定loginId指定设备端的tokenValue
在配置为允许并发登录时,此方法只会返回队列的最后一个token,
如果你需要返回此账号id的所有token,请调用 getTokenValueListByLoginId
|
java.util.List<java.lang.String> |
getTokenValueListByLoginId(java.lang.Object loginId)
获取指定loginId的tokenValue集合
|
java.util.List<java.lang.String> |
getTokenValueListByLoginId(java.lang.Object loginId,
java.lang.String device)
获取指定loginId指定设备端的tokenValue 集合
|
boolean |
hasPermission(java.lang.Object loginId,
java.lang.String permission)
指定账号id是否含有指定权限
|
boolean |
hasPermission(java.lang.String permission)
当前账号id是否含有指定权限
|
boolean |
hasRole(java.lang.Object loginId,
java.lang.String role)
指定账号id是否含有角色标识
|
boolean |
hasRole(java.lang.String role)
当前账号id是否含有指定角色标识
|
boolean |
isLogin()
获取当前会话是否已经登录
|
void |
logout()
当前会话注销登录
|
void |
logoutByLoginId(java.lang.Object loginId)
指定loginId的会话注销登录(踢人下线)
当对方再次访问系统时,会抛出NotLoginException异常,场景值=-2
|
void |
logoutByLoginId(java.lang.Object loginId,
java.lang.String device)
指定loginId指定设备的会话注销登录(踢人下线)
当对方再次访问系统时,会抛出NotLoginException异常,场景值=-2
|
void |
logoutByTokenValue(java.lang.String tokenValue)
指定token的会话注销登录
|
java.util.List<java.lang.String> |
searchSessionId(java.lang.String keyword,
int start,
int size)
根据条件查询SessionId
|
java.util.List<java.lang.String> |
searchTokenSessionId(java.lang.String keyword,
int start,
int size)
根据条件查询token专属Session的Id
|
java.util.List<java.lang.String> |
searchTokenValue(java.lang.String keyword,
int start,
int size)
根据条件查询token
|
protected void |
setLastActivityToNow(java.lang.String tokenValue)
写入指定token的 [最后操作时间] 为当前时间戳
|
void |
setLoginId(java.lang.Object loginId)
在当前会话上登录id
|
void |
setLoginId(java.lang.Object loginId,
java.lang.String device)
在当前会话上登录id
|
void |
updateLastActivityToNow()
续签当前token:(将 [最后操作时间] 更新为当前时间戳)
请注意: 即时token已经 [临时过期] 也可续签成功,
如果此场景下需要提示续签失败,可在此之前调用 checkActivityTimeout() 强制检查是否过期即可
|
void |
updateLastActivityToNow(java.lang.String tokenValue)
续签指定token:(将 [最后操作时间] 更新为当前时间戳)
|
public StpLogic(java.lang.String loginKey)
loginKey - 账号标识public java.lang.String getTokenName()
public java.lang.String createTokenValue(java.lang.Object loginId)
loginId - loginIdpublic java.lang.String getTokenValue()
public java.lang.String getLoginKey()
public SaTokenInfo getTokenInfo()
public void setLoginId(java.lang.Object loginId)
loginId - 登录id,建议的类型:(long | int | String)public void setLoginId(java.lang.Object loginId,
java.lang.String device)
loginId - 登录id,建议的类型:(long | int | String)device - 设备标识public void logout()
public void logoutByTokenValue(java.lang.String tokenValue)
tokenValue - 指定tokenpublic void logoutByLoginId(java.lang.Object loginId)
当对方再次访问系统时,会抛出NotLoginException异常,场景值=-2
loginId - 账号idpublic void logoutByLoginId(java.lang.Object loginId,
java.lang.String device)
当对方再次访问系统时,会抛出NotLoginException异常,场景值=-2
loginId - 账号iddevice - 设备标识 (填null代表所有注销设备)public boolean isLogin()
public void checkLogin()
public java.lang.Object getLoginId()
public <T> T getLoginId(T defaultValue)
T - 返回类型defaultValue - 默认值public java.lang.Object getLoginIdDefaultNull()
public java.lang.String getLoginIdAsString()
public int getLoginIdAsInt()
public long getLoginIdAsLong()
public java.lang.Object getLoginIdByToken(java.lang.String tokenValue)
tokenValue - tokenpublic SaSession getSessionBySessionId(java.lang.String sessionId, boolean isCreate)
sessionId - sessionIdisCreate - 是否新建public SaSession getSessionBySessionId(java.lang.String sessionId)
sessionId - sessionIdpublic SaSession getSessionByLoginId(java.lang.Object loginId, boolean isCreate)
loginId - 账号idisCreate - 是否新建public SaSession getSessionByLoginId(java.lang.Object loginId)
loginId - 账号idpublic SaSession getSession(boolean isCreate)
isCreate - 是否新建public SaSession getSession()
public SaSession getTokenSessionByToken(java.lang.String tokenValue, boolean isCreate)
tokenValue - token值isCreate - 是否新建public SaSession getTokenSessionByToken(java.lang.String tokenValue)
tokenValue - token值public SaSession getTokenSession(boolean isCreate)
isCreate - 是否新建public SaSession getTokenSession()
protected void setLastActivityToNow(java.lang.String tokenValue)
tokenValue - 指定tokenprotected void clearLastActivity(java.lang.String tokenValue)
tokenValue - 指定tokenpublic void checkActivityTimeout(java.lang.String tokenValue)
tokenValue - 指定tokenpublic void checkActivityTimeout()
public void updateLastActivityToNow(java.lang.String tokenValue)
tokenValue - 指定tokenpublic void updateLastActivityToNow()
public long getTokenTimeout()
public long getTokenTimeoutByLoginId(java.lang.Object loginId)
loginId - 指定loginIdpublic long getSessionTimeout()
public long getSessionTimeoutByLoginId(java.lang.Object loginId)
loginId - 指定loginIdpublic long getTokenSessionTimeout()
public long getTokenSessionTimeoutByTokenValue(java.lang.String tokenValue)
tokenValue - 指定tokenpublic long getTokenActivityTimeout()
public long getTokenActivityTimeoutByToken(java.lang.String tokenValue)
tokenValue - 指定tokenpublic boolean hasRole(java.lang.Object loginId,
java.lang.String role)
loginId - 账号idrole - 角色标识public boolean hasRole(java.lang.String role)
role - 角色标识public void checkRole(java.lang.String role)
role - 角色标识public void checkRoleAnd(java.lang.String... roleArray)
roleArray - 角色标识数组public void checkRoleOr(java.lang.String... roleArray)
roleArray - 角色标识数组public boolean hasPermission(java.lang.Object loginId,
java.lang.String permission)
loginId - 账号idpermission - 权限码public boolean hasPermission(java.lang.String permission)
permission - 权限码public void checkPermission(java.lang.String permission)
permission - 权限码public void checkPermissionAnd(java.lang.String... permissionArray)
permissionArray - 权限码数组public void checkPermissionOr(java.lang.String... permissionArray)
permissionArray - 权限码数组public java.lang.String getTokenValueByLoginId(java.lang.Object loginId)
在配置为允许并发登录时,此方法只会返回队列的最后一个token, 如果你需要返回此账号id的所有token,请调用 getTokenValueListByLoginId
loginId - 账号idpublic java.lang.String getTokenValueByLoginId(java.lang.Object loginId,
java.lang.String device)
在配置为允许并发登录时,此方法只会返回队列的最后一个token, 如果你需要返回此账号id的所有token,请调用 getTokenValueListByLoginId
loginId - 账号iddevice - 设备标识public java.util.List<java.lang.String> getTokenValueListByLoginId(java.lang.Object loginId)
loginId - 账号idpublic java.util.List<java.lang.String> getTokenValueListByLoginId(java.lang.Object loginId,
java.lang.String device)
loginId - 账号iddevice - 设备标识public java.lang.String getLoginDevice()
public java.util.List<java.lang.String> searchTokenValue(java.lang.String keyword,
int start,
int size)
keyword - 关键字start - 开始处索引 (-1代表查询所有)size - 获取数量public java.util.List<java.lang.String> searchSessionId(java.lang.String keyword,
int start,
int size)
keyword - 关键字start - 开始处索引 (-1代表查询所有)size - 获取数量public java.util.List<java.lang.String> searchTokenSessionId(java.lang.String keyword,
int start,
int size)
keyword - 关键字start - 开始处索引 (-1代表查询所有)size - 获取数量public java.lang.String getKeyTokenName()
public java.lang.String getKeyTokenValue(java.lang.String tokenValue)
tokenValue - token值public java.lang.String getKeySession(java.lang.Object loginId)
loginId - 账号idpublic java.lang.String getKeyTokenSession(java.lang.String tokenValue)
tokenValue - token值public java.lang.String getKeyLastActivityTime(java.lang.String tokenValue)
tokenValue - token值public SaTokenConfig getConfig()
Copyright © 2021. All Rights Reserved.