类 StpUtil

java.lang.Object
cn.dev33.satoken.stp.StpUtil

public class StpUtil extends Object
Sa-Token 权限认证工具类
从以下版本开始:
1.0.0
作者:
click33
  • 字段详细资料

    • TYPE

      public static final String TYPE
      多账号体系下的类型标识
      另请参阅:
    • stpLogic

      public static StpLogic stpLogic
      底层使用的 StpLogic 对象
  • 方法详细资料

    • getLoginType

      public static String getLoginType()
      获取当前 StpLogic 的账号类型
      返回:
      /
    • setStpLogic

      public static void setStpLogic(StpLogic newStpLogic)
      安全的重置 StpLogic 对象
      1、更改此账户的 StpLogic 对象
      2、put 到全局 StpLogic 集合中
      3、发送日志
      参数:
      newStpLogic - /
    • getStpLogic

      public static StpLogic getStpLogic()
      获取 StpLogic 对象
      返回:
      /
    • getTokenName

      public static String getTokenName()
      返回 token 名称,此名称在以下地方体现:Cookie 保存 token 时的名称、提交 token 时参数的名称、存储 token 时的 key 前缀
      返回:
      /
    • setTokenValue

      public static void setTokenValue(String tokenValue)
      在当前会话写入指定 token 值
      参数:
      tokenValue - token 值
    • setTokenValue

      public static void setTokenValue(String tokenValue, int cookieTimeout)
      在当前会话写入指定 token 值
      参数:
      tokenValue - token 值
      cookieTimeout - Cookie存活时间(秒)
    • setTokenValue

      public static void setTokenValue(String tokenValue, SaLoginParameter loginParameter)
      在当前会话写入指定 token 值
      参数:
      tokenValue - token 值
      loginParameter - 登录参数
    • getTokenValue

      public static String getTokenValue()
      获取当前请求的 token 值
      返回:
      当前tokenValue
    • getTokenValueNotCut

      public static String getTokenValueNotCut()
      获取当前请求的 token 值 (不裁剪前缀)
      返回:
      /
    • getTokenInfo

      public static SaTokenInfo getTokenInfo()
      获取当前会话的 token 参数信息
      返回:
      token 参数信息
    • login

      public static void login(Object id)
      会话登录
      参数:
      id - 账号id,建议的类型:(long | int | String)
    • login

      public static void login(Object id, String deviceType)
      会话登录,并指定登录设备类型
      参数:
      id - 账号id,建议的类型:(long | int | String)
      deviceType - 设备类型
    • login

      public static void login(Object id, boolean isLastingCookie)
      会话登录,并指定是否 [记住我]
      参数:
      id - 账号id,建议的类型:(long | int | String)
      isLastingCookie - 是否为持久Cookie,值为 true 时记住我,值为 false 时关闭浏览器需要重新登录
    • login

      public static void login(Object id, long timeout)
      会话登录,并指定此次登录 token 的有效期, 单位:秒
      参数:
      id - 账号id,建议的类型:(long | int | String)
      timeout - 此次登录 token 的有效期, 单位:秒
    • login

      public static void login(Object id, SaLoginParameter loginParameter)
      会话登录,并指定所有登录参数 Model
      参数:
      id - 账号id,建议的类型:(long | int | String)
      loginParameter - 此次登录的参数Model
    • createLoginSession

      public static String createLoginSession(Object id)
      创建指定账号 id 的登录会话数据
      参数:
      id - 账号id,建议的类型:(long | int | String)
      返回:
      返回会话令牌
    • createLoginSession

      public static String createLoginSession(Object id, SaLoginParameter loginParameter)
      创建指定账号 id 的登录会话数据
      参数:
      id - 账号id,建议的类型:(long | int | String)
      loginParameter - 此次登录的参数Model
      返回:
      返回会话令牌
    • getOrCreateLoginSession

      public static String getOrCreateLoginSession(Object id)
      获取指定账号 id 的登录会话数据,如果获取不到则创建并返回
      参数:
      id - 账号id,建议的类型:(long | int | String)
      返回:
      返回会话令牌
    • logout

      public static void logout()
      在当前客户端会话注销
    • logout

      public static void logout(SaLogoutParameter logoutParameter)
      在当前客户端会话注销,根据注销参数
    • logoutByTokenValue

      public static void logoutByTokenValue(String tokenValue)
      注销下线,根据指定 token
      参数:
      tokenValue - 指定 token
    • logoutByTokenValue

      public static void logoutByTokenValue(String tokenValue, SaLogoutParameter logoutParameter)
      注销下线,根据指定 token、注销参数
      参数:
      tokenValue - 指定 token
      logoutParameter - /
    • kickoutByTokenValue

      public static void kickoutByTokenValue(String tokenValue)
      踢人下线,根据指定 token

      当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-5

      参数:
      tokenValue - 指定 token
    • kickoutByTokenValue

      public static void kickoutByTokenValue(String tokenValue, SaLogoutParameter logoutParameter)
      踢人下线,根据指定 token、注销参数

      当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-5

      参数:
      tokenValue - 指定 token
      logoutParameter - 注销参数
    • replacedByTokenValue

      public static void replacedByTokenValue(String tokenValue)
      顶人下线,根据指定 token

      当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-4

      参数:
      tokenValue - 指定 token
    • replacedByTokenValue

      public static void replacedByTokenValue(String tokenValue, SaLogoutParameter logoutParameter)
      顶人下线,根据指定 token、注销参数

      当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-4

      参数:
      tokenValue - 指定 token
      logoutParameter - /
    • logout

      public static void logout(Object loginId)
      会话注销,根据账号id
      参数:
      loginId - 账号id
    • logout

      public static void logout(Object loginId, String deviceType)
      会话注销,根据账号id 和 设备类型
      参数:
      loginId - 账号id
      deviceType - 设备类型 (填 null 代表注销该账号的所有设备类型)
    • logout

      public static void logout(Object loginId, SaLogoutParameter logoutParameter)
      会话注销,根据账号id 和 注销参数
      参数:
      loginId - 账号id
      logoutParameter - 注销参数
    • kickout

      public static void kickout(Object loginId)
      踢人下线,根据账号id

      当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-5

      参数:
      loginId - 账号id
    • kickout

      public static void kickout(Object loginId, String deviceType)
      踢人下线,根据账号id 和 设备类型

      当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-5

      参数:
      loginId - 账号id
      deviceType - 设备类型 (填 null 代表踢出该账号的所有设备类型)
    • kickout

      public static void kickout(Object loginId, SaLogoutParameter logoutParameter)
      踢人下线,根据账号id 和 注销参数

      当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-5

      参数:
      loginId - 账号id
      logoutParameter - 注销参数
    • replaced

      public static void replaced(Object loginId)
      顶人下线,根据账号id

      当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-4

      参数:
      loginId - 账号id
    • replaced

      public static void replaced(Object loginId, String deviceType)
      顶人下线,根据账号id 和 设备类型

      当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-4

      参数:
      loginId - 账号id
      deviceType - 设备类型 (填 null 代表顶替该账号的所有设备类型)
    • replaced

      public static void replaced(Object loginId, SaLogoutParameter logoutParameter)
      顶人下线,根据账号id 和 注销参数

      当对方再次访问系统时,会抛出 NotLoginException 异常,场景值=-4

      参数:
      loginId - 账号id
      logoutParameter - 注销参数
    • removeTerminalByLogout

      public static void removeTerminalByLogout(SaSession session, SaTerminalInfo terminal)
      在 Account-Session 上移除 Terminal 信息 (注销下线方式)
      参数:
      session - /
      terminal - /
    • removeTerminalByKickout

      public static void removeTerminalByKickout(SaSession session, SaTerminalInfo terminal)
      在 Account-Session 上移除 Terminal 信息 (踢人下线方式)
      参数:
      session - /
      terminal - /
    • removeTerminalByReplaced

      public static void removeTerminalByReplaced(SaSession session, SaTerminalInfo terminal)
      在 Account-Session 上移除 Terminal 信息 (顶人下线方式)
      参数:
      session - /
      terminal - /
    • isLogin

      public static boolean isLogin()
      判断当前会话是否已经登录
      返回:
      已登录返回 true,未登录返回 false
    • isLogin

      public static boolean isLogin(Object loginId)
      判断指定账号是否已经登录
      返回:
      已登录返回 true,未登录返回 false
    • checkLogin

      public static void checkLogin()
      检验当前会话是否已经登录,如未登录,则抛出异常
    • getLoginId

      public static Object getLoginId()
      获取当前会话账号id,如果未登录,则抛出异常
      返回:
      账号id
    • getLoginId

      public static <T> T getLoginId(T defaultValue)
      获取当前会话账号id, 如果未登录,则返回默认值
      类型参数:
      T - 返回类型
      参数:
      defaultValue - 默认值
      返回:
      登录id
    • getLoginIdDefaultNull

      public static Object getLoginIdDefaultNull()
      获取当前会话账号id, 如果未登录,则返回null
      返回:
      账号id
    • getLoginIdAsString

      public static String getLoginIdAsString()
      获取当前会话账号id, 并转换为 String 类型
      返回:
      账号id
    • getLoginIdAsInt

      public static int getLoginIdAsInt()
      获取当前会话账号id, 并转换为 int 类型
      返回:
      账号id
    • getLoginIdAsLong

      public static long getLoginIdAsLong()
      获取当前会话账号id, 并转换为 long 类型
      返回:
      账号id
    • getLoginIdByToken

      public static Object getLoginIdByToken(String tokenValue)
      获取指定 token 对应的账号id,如果 token 无效或 token 处于被踢、被顶、被冻结等状态,则返回 null
      参数:
      tokenValue - token
      返回:
      账号id
    • getLoginIdByTokenNotThinkFreeze

      public Object getLoginIdByTokenNotThinkFreeze(String tokenValue)
      获取指定 token 对应的账号id,如果 token 无效或 token 处于被踢、被顶等状态 (不考虑被冻结),则返回 null
      参数:
      tokenValue - token
      返回:
      账号id
    • getExtra

      public static Object getExtra(String key)
      获取当前 Token 的扩展信息(此函数只在jwt模式下生效)
      参数:
      key - 键值
      返回:
      对应的扩展数据
    • getExtra

      public static Object getExtra(String tokenValue, String key)
      获取指定 Token 的扩展信息(此函数只在jwt模式下生效)
      参数:
      tokenValue - 指定的 Token 值
      key - 键值
      返回:
      对应的扩展数据
    • getSessionByLoginId

      public static SaSession getSessionByLoginId(Object loginId, boolean isCreate)
      获取指定账号 id 的 Account-Session, 如果该 SaSession 尚未创建,isCreate=是否新建并返回
      参数:
      loginId - 账号id
      isCreate - 是否新建
      返回:
      SaSession 对象
    • getSessionBySessionId

      public static SaSession getSessionBySessionId(String sessionId)
      获取指定 key 的 SaSession, 如果该 SaSession 尚未创建,则返回 null
      参数:
      sessionId - SessionId
      返回:
      Session对象
    • getSessionByLoginId

      public static SaSession getSessionByLoginId(Object loginId)
      获取指定账号 id 的 Account-Session,如果该 SaSession 尚未创建,则新建并返回
      参数:
      loginId - 账号id
      返回:
      SaSession 对象
    • getSession

      public static SaSession getSession(boolean isCreate)
      获取当前已登录账号的 Account-Session, 如果该 SaSession 尚未创建,isCreate=是否新建并返回
      参数:
      isCreate - 是否新建
      返回:
      Session对象
    • getSession

      public static SaSession getSession()
      获取当前已登录账号的 Account-Session,如果该 SaSession 尚未创建,则新建并返回
      返回:
      Session对象
    • getTokenSessionByToken

      public static SaSession getTokenSessionByToken(String tokenValue)
      获取指定 token 的 Token-Session,如果该 SaSession 尚未创建,则新建并返回
      参数:
      tokenValue - Token值
      返回:
      Session对象
    • getTokenSession

      public static SaSession getTokenSession()
      获取当前 token 的 Token-Session,如果该 SaSession 尚未创建,则新建并返回
      返回:
      Session对象
    • getAnonTokenSession

      public static SaSession getAnonTokenSession()
      获取当前匿名 Token-Session (可在未登录情况下使用的Token-Session)
      返回:
      Token-Session 对象
    • updateLastActiveToNow

      public static void updateLastActiveToNow()
      续签当前 token:(将 [最后操作时间] 更新为当前时间戳)

      请注意: 即使 token 已被冻结 也可续签成功, 如果此场景下需要提示续签失败,可在此之前调用 checkActiveTimeout() 强制检查是否冻结即可

    • checkActiveTimeout

      public static void checkActiveTimeout()
      检查当前 token 是否已被冻结,如果是则抛出异常
    • getTokenTimeout

      public static long getTokenTimeout()
      获取当前会话 token 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)
      返回:
      token剩余有效时间
    • getTokenTimeout

      public static long getTokenTimeout(String token)
      获取指定 token 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)
      参数:
      token - 指定token
      返回:
      token剩余有效时间
    • getSessionTimeout

      public static long getSessionTimeout()
      获取当前登录账号的 Account-Session 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)
      返回:
      token剩余有效时间
    • getTokenSessionTimeout

      public static long getTokenSessionTimeout()
      获取当前 token 的 Token-Session 剩余有效时间(单位: 秒,返回 -1 代表永久有效,-2 代表没有这个值)
      返回:
      token剩余有效时间
    • getTokenActiveTimeout

      public static long getTokenActiveTimeout()
      获取当前 token 剩余活跃有效期:当前 token 距离被冻结还剩多少时间(单位: 秒,返回 -1 代表永不冻结,-2 代表没有这个值或 token 已被冻结了)
      返回:
      /
    • renewTimeout

      public static void renewTimeout(long timeout)
      对当前 token 的 timeout 值进行续期
      参数:
      timeout - 要修改成为的有效时间 (单位: 秒)
    • renewTimeout

      public static void renewTimeout(String tokenValue, long timeout)
      对指定 token 的 timeout 值进行续期
      参数:
      tokenValue - 指定 token
      timeout - 要修改成为的有效时间 (单位: 秒,填 -1 代表要续为永久有效)
    • getRoleList

      public static List<String> getRoleList()
      获取:当前账号的角色集合
      返回:
      /
    • getRoleList

      public static List<String> getRoleList(Object loginId)
      获取:指定账号的角色集合
      参数:
      loginId - 指定账号id
      返回:
      /
    • hasRole

      public static boolean hasRole(String role)
      判断:当前账号是否拥有指定角色, 返回 true 或 false
      参数:
      role - 角色
      返回:
      /
    • hasRole

      public static boolean hasRole(Object loginId, String role)
      判断:指定账号是否含有指定角色标识, 返回 true 或 false
      参数:
      loginId - 账号id
      role - 角色标识
      返回:
      是否含有指定角色标识
    • hasRoleAnd

      public static boolean hasRoleAnd(String... roleArray)
      判断:当前账号是否含有指定角色标识 [ 指定多个,必须全部验证通过 ]
      参数:
      roleArray - 角色标识数组
      返回:
      true或false
    • hasRoleOr

      public static boolean hasRoleOr(String... roleArray)
      判断:当前账号是否含有指定角色标识 [ 指定多个,只要其一验证通过即可 ]
      参数:
      roleArray - 角色标识数组
      返回:
      true或false
    • checkRole

      public static void checkRole(String role)
      校验:当前账号是否含有指定角色标识, 如果验证未通过,则抛出异常: NotRoleException
      参数:
      role - 角色标识
    • checkRoleAnd

      public static void checkRoleAnd(String... roleArray)
      校验:当前账号是否含有指定角色标识 [ 指定多个,必须全部验证通过 ]
      参数:
      roleArray - 角色标识数组
    • checkRoleOr

      public static void checkRoleOr(String... roleArray)
      校验:当前账号是否含有指定角色标识 [ 指定多个,只要其一验证通过即可 ]
      参数:
      roleArray - 角色标识数组
    • getPermissionList

      public static List<String> getPermissionList()
      获取:当前账号的权限码集合
      返回:
      /
    • getPermissionList

      public static List<String> getPermissionList(Object loginId)
      获取:指定账号的权限码集合
      参数:
      loginId - 指定账号id
      返回:
      /
    • hasPermission

      public static boolean hasPermission(String permission)
      判断:当前账号是否含有指定权限, 返回 true 或 false
      参数:
      permission - 权限码
      返回:
      是否含有指定权限
    • hasPermission

      public static boolean hasPermission(Object loginId, String permission)
      判断:指定账号 id 是否含有指定权限, 返回 true 或 false
      参数:
      loginId - 账号 id
      permission - 权限码
      返回:
      是否含有指定权限
    • hasPermissionAnd

      public static boolean hasPermissionAnd(String... permissionArray)
      判断:当前账号是否含有指定权限 [ 指定多个,必须全部具有 ]
      参数:
      permissionArray - 权限码数组
      返回:
      true 或 false
    • hasPermissionOr

      public static boolean hasPermissionOr(String... permissionArray)
      判断:当前账号是否含有指定权限 [ 指定多个,只要其一验证通过即可 ]
      参数:
      permissionArray - 权限码数组
      返回:
      true 或 false
    • checkPermission

      public static void checkPermission(String permission)
      校验:当前账号是否含有指定权限, 如果验证未通过,则抛出异常: NotPermissionException
      参数:
      permission - 权限码
    • checkPermissionAnd

      public static void checkPermissionAnd(String... permissionArray)
      校验:当前账号是否含有指定权限 [ 指定多个,必须全部验证通过 ]
      参数:
      permissionArray - 权限码数组
    • checkPermissionOr

      public static void checkPermissionOr(String... permissionArray)
      校验:当前账号是否含有指定权限 [ 指定多个,只要其一验证通过即可 ]
      参数:
      permissionArray - 权限码数组
    • getTokenValueByLoginId

      public static String getTokenValueByLoginId(Object loginId)
      获取指定账号 id 的 token

      在配置为允许并发登录时,此方法只会返回队列的最后一个 token, 如果你需要返回此账号 id 的所有 token,请调用 getTokenValueListByLoginId

      参数:
      loginId - 账号id
      返回:
      token值
    • getTokenValueByLoginId

      public static String getTokenValueByLoginId(Object loginId, String deviceType)
      获取指定账号 id 指定设备类型端的 token

      在配置为允许并发登录时,此方法只会返回队列的最后一个 token, 如果你需要返回此账号 id 的所有 token,请调用 getTokenValueListByLoginId

      参数:
      loginId - 账号id
      deviceType - 设备类型,填 null 代表不限设备类型
      返回:
      token值
    • getTokenValueListByLoginId

      public static List<String> getTokenValueListByLoginId(Object loginId)
      获取指定账号 id 的 token 集合
      参数:
      loginId - 账号id
      返回:
      此 loginId 的所有相关 token
    • getTokenValueListByLoginId

      public static List<String> getTokenValueListByLoginId(Object loginId, String deviceType)
      获取指定账号 id 指定设备类型端的 token 集合
      参数:
      loginId - 账号id
      deviceType - 设备类型,填 null 代表不限设备类型
      返回:
      此 loginId 的所有登录 token
    • getTerminalListByLoginId

      public static List<SaTerminalInfo> getTerminalListByLoginId(Object loginId)
      获取指定账号 id 已登录设备信息集合
      参数:
      loginId - 账号id
      返回:
      此 loginId 的所有登录 token
    • getTerminalListByLoginId

      public static List<SaTerminalInfo> getTerminalListByLoginId(Object loginId, String deviceType)
      获取指定账号 id 指定设备类型端的已登录设备信息集合
      参数:
      loginId - 账号id
      deviceType - 设备类型,填 null 代表不限设备类型
      返回:
      /
    • forEachTerminalList

      public static void forEachTerminalList(Object loginId, SaTwoParamFunction<SaSession,SaTerminalInfo> function)
      获取指定账号 id 已登录设备信息集合,执行特定函数
      参数:
      loginId - 账号id
      function - 需要执行的函数
    • getLoginDeviceType

      public static String getLoginDeviceType()
      返回当前会话的登录设备类型
      返回:
      当前令牌的登录设备类型
    • getLoginDeviceTypeByToken

      public static String getLoginDeviceTypeByToken(String tokenValue)
      返回指定 token 会话的登录设备类型
      参数:
      tokenValue - 指定token
      返回:
      当前令牌的登录设备类型
    • getTokenLastActiveTime

      public static long getTokenLastActiveTime()
      获取当前 token 的最后活跃时间(13位时间戳),如果不存在则返回 -2
      返回:
      /
    • isTrustDeviceId

      public static boolean isTrustDeviceId(Object userId, String deviceId)
      判断对于指定 loginId 来讲,指定设备 id 是否为可信任设备
      参数:
      deviceId - /
      返回:
      /
    • searchTokenValue

      public static List<String> searchTokenValue(String keyword, int start, int size, boolean sortType)
      根据条件查询缓存中所有的 token
      参数:
      keyword - 关键字
      start - 开始处索引
      size - 获取数量 (-1代表一直获取到末尾)
      sortType - 排序类型(true=正序,false=反序)
      返回:
      token集合
    • searchSessionId

      public static List<String> searchSessionId(String keyword, int start, int size, boolean sortType)
      根据条件查询缓存中所有的 SessionId
      参数:
      keyword - 关键字
      start - 开始处索引
      size - 获取数量 (-1代表一直获取到末尾)
      sortType - 排序类型(true=正序,false=反序)
      返回:
      sessionId集合
    • searchTokenSessionId

      public static List<String> searchTokenSessionId(String keyword, int start, int size, boolean sortType)
      根据条件查询缓存中所有的 Token-Session-Id
      参数:
      keyword - 关键字
      start - 开始处索引
      size - 获取数量 (-1代表一直获取到末尾)
      sortType - 排序类型(true=正序,false=反序)
      返回:
      sessionId集合
    • disable

      public static void disable(Object loginId, long time)
      封禁:指定账号

      此方法不会直接将此账号id踢下线,如需封禁后立即掉线,请追加调用 StpUtil.logout(id)

      参数:
      loginId - 指定账号id
      time - 封禁时间, 单位: 秒 (-1=永久封禁)
    • isDisable

      public static boolean isDisable(Object loginId)
      判断:指定账号是否已被封禁 (true=已被封禁, false=未被封禁)
      参数:
      loginId - 账号id
      返回:
      /
    • checkDisable

      public static void checkDisable(Object loginId)
      校验:指定账号是否已被封禁,如果被封禁则抛出异常
      参数:
      loginId - 账号id
    • getDisableTime

      public static long getDisableTime(Object loginId)
      获取:指定账号剩余封禁时间,单位:秒(-1=永久封禁,-2=未被封禁)
      参数:
      loginId - 账号id
      返回:
      /
    • untieDisable

      public static void untieDisable(Object loginId)
      解封:指定账号
      参数:
      loginId - 账号id
    • disable

      public static void disable(Object loginId, String service, long time)
      封禁:指定账号的指定服务

      此方法不会直接将此账号id踢下线,如需封禁后立即掉线,请追加调用 StpUtil.logout(id)

      参数:
      loginId - 指定账号id
      service - 指定服务
      time - 封禁时间, 单位: 秒 (-1=永久封禁)
    • isDisable

      public static boolean isDisable(Object loginId, String service)
      判断:指定账号的指定服务 是否已被封禁(true=已被封禁, false=未被封禁)
      参数:
      loginId - 账号id
      service - 指定服务
      返回:
      /
    • checkDisable

      public static void checkDisable(Object loginId, String... services)
      校验:指定账号 指定服务 是否已被封禁,如果被封禁则抛出异常
      参数:
      loginId - 账号id
      services - 指定服务,可以指定多个
    • getDisableTime

      public static long getDisableTime(Object loginId, String service)
      获取:指定账号 指定服务 剩余封禁时间,单位:秒(-1=永久封禁,-2=未被封禁)
      参数:
      loginId - 账号id
      service - 指定服务
      返回:
      see note
    • untieDisable

      public static void untieDisable(Object loginId, String... services)
      解封:指定账号、指定服务
      参数:
      loginId - 账号id
      services - 指定服务,可以指定多个
    • disableLevel

      public static void disableLevel(Object loginId, int level, long time)
      封禁:指定账号,并指定封禁等级
      参数:
      loginId - 指定账号id
      level - 指定封禁等级
      time - 封禁时间, 单位: 秒 (-1=永久封禁)
    • disableLevel

      public static void disableLevel(Object loginId, String service, int level, long time)
      封禁:指定账号的指定服务,并指定封禁等级
      参数:
      loginId - 指定账号id
      service - 指定封禁服务
      level - 指定封禁等级
      time - 封禁时间, 单位: 秒 (-1=永久封禁)
    • isDisableLevel

      public static boolean isDisableLevel(Object loginId, int level)
      判断:指定账号是否已被封禁到指定等级
      参数:
      loginId - 指定账号id
      level - 指定封禁等级
      返回:
      /
    • isDisableLevel

      public static boolean isDisableLevel(Object loginId, String service, int level)
      判断:指定账号的指定服务,是否已被封禁到指定等级
      参数:
      loginId - 指定账号id
      service - 指定封禁服务
      level - 指定封禁等级
      返回:
      /
    • checkDisableLevel

      public static void checkDisableLevel(Object loginId, int level)
      校验:指定账号是否已被封禁到指定等级(如果已经达到,则抛出异常)
      参数:
      loginId - 指定账号id
      level - 封禁等级 (只有 封禁等级 ≥ 此值 才会抛出异常)
    • checkDisableLevel

      public static void checkDisableLevel(Object loginId, String service, int level)
      校验:指定账号的指定服务,是否已被封禁到指定等级(如果已经达到,则抛出异常)
      参数:
      loginId - 指定账号id
      service - 指定封禁服务
      level - 封禁等级 (只有 封禁等级 ≥ 此值 才会抛出异常)
    • getDisableLevel

      public static int getDisableLevel(Object loginId)
      获取:指定账号被封禁的等级,如果未被封禁则返回-2
      参数:
      loginId - 指定账号id
      返回:
      /
    • getDisableLevel

      public static int getDisableLevel(Object loginId, String service)
      获取:指定账号的 指定服务 被封禁的等级,如果未被封禁则返回-2
      参数:
      loginId - 指定账号id
      service - 指定封禁服务
      返回:
      /
    • switchTo

      public static void switchTo(Object loginId)
      临时切换身份为指定账号id
      参数:
      loginId - 指定loginId
    • endSwitch

      public static void endSwitch()
      结束临时切换身份
    • isSwitch

      public static boolean isSwitch()
      判断当前请求是否正处于 [ 身份临时切换 ] 中
      返回:
      /
    • switchTo

      public static void switchTo(Object loginId, SaFunction function)
      在一个 lambda 代码段里,临时切换身份为指定账号id,lambda 结束后自动恢复
      参数:
      loginId - 指定账号id
      function - 要执行的方法
    • openSafe

      public static void openSafe(long safeTime)
      在当前会话 开启二级认证
      参数:
      safeTime - 维持时间 (单位: 秒)
    • openSafe

      public static void openSafe(String service, long safeTime)
      在当前会话 开启二级认证
      参数:
      service - 业务标识
      safeTime - 维持时间 (单位: 秒)
    • isSafe

      public static boolean isSafe()
      判断:当前会话是否处于二级认证时间内
      返回:
      true=二级认证已通过, false=尚未进行二级认证或认证已超时
    • isSafe

      public static boolean isSafe(String service)
      判断:当前会话 是否处于指定业务的二级认证时间内
      参数:
      service - 业务标识
      返回:
      true=二级认证已通过, false=尚未进行二级认证或认证已超时
    • isSafe

      public static boolean isSafe(String tokenValue, String service)
      判断:指定 token 是否处于二级认证时间内
      参数:
      tokenValue - Token 值
      service - 业务标识
      返回:
      true=二级认证已通过, false=尚未进行二级认证或认证已超时
    • checkSafe

      public static void checkSafe()
      校验:当前会话是否已通过二级认证,如未通过则抛出异常
    • checkSafe

      public static void checkSafe(String service)
      校验:检查当前会话是否已通过指定业务的二级认证,如未通过则抛出异常
      参数:
      service - 业务标识
    • getSafeTime

      public static long getSafeTime()
      获取:当前会话的二级认证剩余有效时间(单位: 秒, 返回-2代表尚未通过二级认证)
      返回:
      剩余有效时间
    • getSafeTime

      public static long getSafeTime(String service)
      获取:当前会话的二级认证剩余有效时间(单位: 秒, 返回-2代表尚未通过二级认证)
      参数:
      service - 业务标识
      返回:
      剩余有效时间
    • closeSafe

      public static void closeSafe()
      在当前会话 结束二级认证
    • closeSafe

      public static void closeSafe(String service)
      在当前会话 结束指定业务标识的二级认证
      参数:
      service - 业务标识
    • createSaLoginParameter

      public static SaLoginParameter createSaLoginParameter()
      根据当前配置对象创建一个 SaLoginParameter 对象
      返回:
      /
    • getLoginDevice

      @Deprecated public static String getLoginDevice()
      已过时。

      请更换为 getLoginDeviceType

      返回当前会话的登录设备类型
      返回:
      当前令牌的登录设备类型
    • getLoginDeviceByToken

      @Deprecated public static String getLoginDeviceByToken(String tokenValue)
      已过时。

      请更换为 getLoginDeviceTypeByToken

      返回指定 token 会话的登录设备类型
      参数:
      tokenValue - 指定token
      返回:
      当前令牌的登录设备类型