类 StpLogic

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

public class StpLogic extends Object
Sa-Token 权限认证,逻辑实现类
作者:
kong
  • 字段详细资料

    • loginType

      public String loginType
      账号类型,多账号体系时以此值区分,比如:login、user、admin
  • 构造器详细资料

    • StpLogic

      public StpLogic(String loginType)
      初始化StpLogic, 并指定账号类型
      参数:
      loginType - 账号体系标识
  • 方法详细资料

    • getLoginType

      public String getLoginType()
      获取当前 StpLogic 的账号类型
      返回:
      See Note
    • setLoginType

      public StpLogic setLoginType(String loginType)
      设置当前账号类型
      参数:
      loginType - loginType
      返回:
      对象自身
    • getTokenName

      public String getTokenName()
      返回token名称
      返回:
      此StpLogic的token名称
    • createTokenValue

      public String createTokenValue(Object loginId, String device, long timeout, Map<String,Object> extraData)
      创建一个TokenValue
      参数:
      loginId - loginId
      device - 设备类型
      timeout - 过期时间
      extraData - 扩展信息
      返回:
      生成的tokenValue
    • setTokenValue

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

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

      public void setTokenValue(String tokenValue, SaLoginModel loginModel)
      在当前会话写入当前TokenValue
      参数:
      tokenValue - token值
      loginModel - 登录参数
    • setTokenValueToStorage

      public void setTokenValueToStorage(String tokenValue)
      将 Token 保存到 [Storage] 里
      参数:
      tokenValue - token值
    • setTokenValueToCookie

      public void setTokenValueToCookie(String tokenValue, int cookieTimeout)
      将 Token 保存到 [Cookie] 里
      参数:
      tokenValue - token值
      cookieTimeout - Cookie存活时间(秒)
    • setTokenValueToResponseHeader

      public void setTokenValueToResponseHeader(String tokenValue)
      将 Token 写入到 [响应头] 里
      参数:
      tokenValue - token值
    • getTokenValue

      public String getTokenValue()
      获取当前TokenValue
      返回:
      当前tokenValue
    • getTokenValueNotCut

      public String getTokenValueNotCut()
      获取当前TokenValue (不裁剪前缀)
      返回:
      /
    • getTokenValueNotNull

      public String getTokenValueNotNull()
      获取当前上下文的 TokenValue(如果获取不到则抛出异常)
      返回:
      /
    • getTokenInfo

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

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

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

      public void login(Object id, boolean isLastingCookie)
      会话登录,并指定是否 [记住我]
      参数:
      id - 账号id,建议的类型:(long | int | String)
      isLastingCookie - 是否为持久Cookie
    • login

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

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

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

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

      protected String distUsableToken(Object id, SaLoginModel loginModel)
      为指定账号id的登录操作,分配一个可用的 Token
      参数:
      id - 账号id
      loginModel - 此次登录的参数Model
      返回:
      返回 Token
    • logout

      public void logout()
      会话注销
    • logout

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

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

      public void logoutByMaxLoginCount(Object loginId, SaSession session, String device, int maxLoginCount)
      会话注销,根据账号id 和 设备类型 和 最大同时在线数量
      参数:
      loginId - 账号id
      session - 此账号的 Session 对象,可填写null,框架将自动获取
      device - 设备类型 (填null代表注销所有设备类型)
      maxLoginCount - 保留最近的几次登录
    • logoutByTokenValue

      public void logoutByTokenValue(String tokenValue)
      会话注销,根据指定 Token
      参数:
      tokenValue - 指定token
    • kickout

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

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

      参数:
      loginId - 账号id
    • kickout

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

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

      参数:
      loginId - 账号id
      device - 设备类型 (填null代表踢出所有设备类型)
    • kickoutByTokenValue

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

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

      参数:
      tokenValue - 指定token
    • replaced

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

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

      参数:
      loginId - 账号id
      device - 设备类型 (填null代表顶替所有设备类型)
    • isLogin

      public boolean isLogin()
      当前会话是否已经登录
      返回:
      是否已登录
    • checkLogin

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

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

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

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

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

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

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

      public Object getLoginIdByToken(String tokenValue)
      获取指定Token对应的账号id,如果未登录,则返回 null
      参数:
      tokenValue - token
      返回:
      账号id
    • getLoginIdNotHandle

      public String getLoginIdNotHandle(String tokenValue)
      获取指定Token对应的账号id (不做任何特殊处理)
      参数:
      tokenValue - token值
      返回:
      账号id
    • getExtra

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

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

      public boolean isValidLoginId(Object loginId)
      判断一个 loginId 是否是有效的
      参数:
      loginId - 账号id
      返回:
      /
    • deleteTokenToIdMapping

      public void deleteTokenToIdMapping(String tokenValue)
      删除 Token-Id 映射
      参数:
      tokenValue - token值
    • updateTokenToIdMapping

      public void updateTokenToIdMapping(String tokenValue, Object loginId)
      更改 Token 指向的 账号Id 值
      参数:
      tokenValue - token值
      loginId - 新的账号Id值
    • saveTokenToIdMapping

      public void saveTokenToIdMapping(String tokenValue, Object loginId, long timeout)
      存储 Token-Id 映射
      参数:
      tokenValue - token值
      loginId - 账号id
      timeout - 会话有效期 (单位: 秒)
    • getSessionBySessionId

      public SaSession getSessionBySessionId(String sessionId, boolean isCreate)
      获取指定key的Session, 如果Session尚未创建,isCreate=是否新建并返回
      参数:
      sessionId - SessionId
      isCreate - 是否新建
      返回:
      Session对象
    • getSessionBySessionId

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

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

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

      public SaSession getSession(boolean isCreate)
      获取当前User-Session, 如果Session尚未创建,isCreate=是否新建并返回
      参数:
      isCreate - 是否新建
      返回:
      Session对象
    • getSession

      public SaSession getSession()
      获取当前User-Session,如果Session尚未创建,则新建并返回
      返回:
      Session对象
    • getTokenSessionByToken

      public SaSession getTokenSessionByToken(String tokenValue, boolean isCreate)
      获取指定Token-Session,如果Session尚未创建,isCreate代表是否新建并返回
      参数:
      tokenValue - token值
      isCreate - 是否新建
      返回:
      session对象
    • getTokenSessionByToken

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

      public SaSession getTokenSession(boolean isCreate)
      获取当前Token-Session,如果Session尚未创建,isCreate代表是否新建并返回
      参数:
      isCreate - 是否新建
      返回:
      Session对象
    • getTokenSession

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

      public SaSession getAnonTokenSession(boolean isCreate)
      获取当前匿名 Token-Session (可在未登录情况下使用的Token-Session)
      参数:
      isCreate - 在 Token-Session 尚未创建的情况是否新建并返回
      返回:
      Token-Session 对象
    • getAnonTokenSession

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

      public void deleteTokenSession(String tokenValue)
      删除Token-Session
      参数:
      tokenValue - token值
    • setLastActivityToNow

      protected void setLastActivityToNow(String tokenValue)
      写入指定token的 [最后操作时间] 为当前时间戳
      参数:
      tokenValue - 指定token
    • clearLastActivity

      protected void clearLastActivity(String tokenValue)
      清除指定 Token 的 [最后操作时间记录]
      参数:
      tokenValue - 指定token
    • checkActivityTimeout

      public void checkActivityTimeout(String tokenValue)
      检查指定token 是否已经[临时过期],如果已经过期则抛出异常
      参数:
      tokenValue - 指定token
    • checkActivityTimeout

      public void checkActivityTimeout()
      检查当前token 是否已经[临时过期],如果已经过期则抛出异常
    • updateLastActivityToNow

      public void updateLastActivityToNow(String tokenValue)
      续签指定token:(将 [最后操作时间] 更新为当前时间戳)
      参数:
      tokenValue - 指定token
    • updateLastActivityToNow

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

      请注意: 即使token已经 [临时过期] 也可续签成功, 如果此场景下需要提示续签失败,可在此之前调用 checkActivityTimeout() 强制检查是否过期即可

    • getTokenTimeout

      public long getTokenTimeout()
      获取当前登录者的 token 剩余有效时间 (单位: 秒)
      返回:
      token剩余有效时间
    • getTokenTimeoutByLoginId

      public long getTokenTimeoutByLoginId(Object loginId)
      获取指定 loginId 的 token 剩余有效时间 (单位: 秒)
      参数:
      loginId - 指定loginId
      返回:
      token剩余有效时间
    • getSessionTimeout

      public long getSessionTimeout()
      获取当前登录者的 User-Session 剩余有效时间 (单位: 秒)
      返回:
      token剩余有效时间
    • getSessionTimeoutByLoginId

      public long getSessionTimeoutByLoginId(Object loginId)
      获取指定 loginId 的 User-Session 剩余有效时间 (单位: 秒)
      参数:
      loginId - 指定loginId
      返回:
      token剩余有效时间
    • getTokenSessionTimeout

      public long getTokenSessionTimeout()
      获取当前 Token-Session 剩余有效时间 (单位: 秒)
      返回:
      token剩余有效时间
    • getTokenSessionTimeoutByTokenValue

      public long getTokenSessionTimeoutByTokenValue(String tokenValue)
      获取指定 Token-Session 剩余有效时间 (单位: 秒)
      参数:
      tokenValue - 指定token
      返回:
      token剩余有效时间
    • getTokenActivityTimeout

      public long getTokenActivityTimeout()
      获取当前 token [临时过期] 剩余有效时间 (单位: 秒)
      返回:
      token [临时过期] 剩余有效时间
    • getTokenActivityTimeoutByToken

      public long getTokenActivityTimeoutByToken(String tokenValue)
      获取指定 token [临时过期] 剩余有效时间 (单位: 秒)
      参数:
      tokenValue - 指定token
      返回:
      token[临时过期]剩余有效时间
    • renewTimeout

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      public void checkByAnnotation(SaCheckLogin at)
      根据注解(@SaCheckLogin)鉴权
      参数:
      at - 注解对象
    • checkByAnnotation

      public void checkByAnnotation(SaCheckRole at)
      根据注解(@SaCheckRole)鉴权
      参数:
      at - 注解对象
    • checkByAnnotation

      public void checkByAnnotation(SaCheckPermission at)
      根据注解(@SaCheckPermission)鉴权
      参数:
      at - 注解对象
    • checkByAnnotation

      public void checkByAnnotation(SaCheckSafe at)
      根据注解(@SaCheckSafe)鉴权
      参数:
      at - 注解对象
    • checkByAnnotation

      public void checkByAnnotation(SaCheckDisable at)
      根据注解(@SaCheckDisable)鉴权
      参数:
      at - 注解对象
    • disable

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      public boolean isSwitch()
      当前是否正处于[身份临时切换]中
      返回:
      是否正处于[身份临时切换]中
    • getSwitchLoginId

      public Object getSwitchLoginId()
      返回[身份临时切换]的loginId
      返回:
      返回[身份临时切换]的loginId
    • switchTo

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

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

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

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

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

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

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

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

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

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

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

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

      public String splicingKeyTokenName()
      拼接key:客户端 tokenName
      返回:
      key
    • splicingKeyTokenValue

      public String splicingKeyTokenValue(String tokenValue)
      拼接key: tokenValue 持久化 token-id
      参数:
      tokenValue - token值
      返回:
      key
    • splicingKeySession

      public String splicingKeySession(Object loginId)
      拼接key: Session 持久化
      参数:
      loginId - 账号id
      返回:
      key
    • splicingKeyTokenSession

      public String splicingKeyTokenSession(String tokenValue)
      拼接key: tokenValue的Token-Session
      参数:
      tokenValue - token值
      返回:
      key
    • splicingKeyLastActivityTime

      public String splicingKeyLastActivityTime(String tokenValue)
      拼接key: 指定token的最后操作时间 持久化
      参数:
      tokenValue - token值
      返回:
      key
    • splicingKeySwitch

      public String splicingKeySwitch()
      在进行身份切换时,使用的存储key
      返回:
      key
    • splicingKeyJustCreatedSave

      public String splicingKeyJustCreatedSave()
      如果token为本次请求新创建的,则以此字符串为key存储在当前request中
      返回:
      key
    • splicingKeyDisable

      public String splicingKeyDisable(Object loginId, String service)
      拼接key: 账号封禁
      参数:
      loginId - 账号id
      service - 具体封禁的服务
      返回:
      key
    • splicingKeySafe

      public String splicingKeySafe(String tokenValue, String service)
      拼接key: 二级认证
      参数:
      tokenValue - 要认证的 Token
      service - 要认证的业务标识
      返回:
      key
    • getConfig

      public SaTokenConfig getConfig()
      返回全局配置对象
      返回:
      /
    • getConfigOfIsShare

      public boolean getConfigOfIsShare()
      返回全局配置对象的isShare属性
      返回:
      /
    • isOpenActivityCheck

      public boolean isOpenActivityCheck()
      返回全局配置是否开启了Token 活跃校验
      返回:
      /
    • getConfigOfCookieTimeout

      public int getConfigOfCookieTimeout()
      返回全局配置的 Cookie 保存时长,单位:秒 (根据全局 timeout 计算)
      返回:
      Cookie 应该保存的时长
    • getSaTokenDao

      public SaTokenDao getSaTokenDao()
      返回持久化对象
      返回:
      /
    • hasElement

      public boolean hasElement(List<String> list, String element)
      判断:集合中是否包含指定元素(模糊匹配)
      参数:
      list - 集合
      element - 元素
      返回:
      /