类 SaSession

java.lang.Object
cn.dev33.satoken.session.SaSession
所有已实现的接口:
SaGetValueInterface, SaSetValueInterface, Serializable

public class SaSession extends Object implements SaSetValueInterface, Serializable
Session Model,会话作用域的读取值对象

在一次会话范围内: 存值、取值。数据在注销登录后失效。

在 Sa-Token 中,SaSession 分为三种,分别是:
- Account-Session: 指的是框架为每个 账号id 分配的 SaSession。
- Token-Session: 指的是框架为每个 token 分配的 SaSession。
- Custom-Session: 指的是以一个 特定的值 作为SessionId,来分配的 SaSession。

注意:以上分类仅为框架设计层面的概念区分,实际上它们的数据存储格式都是一致的。

从以下版本开始:
1.10.0
作者:
click33
另请参阅:
  • 字段详细资料

    • USER

      public static final String USER
      在 SaSession 上存储用户对象时建议使用的 key
      另请参阅:
    • ROLE_LIST

      public static final String ROLE_LIST
      在 SaSession 上存储角色列表时建议使用的 key
      另请参阅:
    • PERMISSION_LIST

      public static final String PERMISSION_LIST
      在 SaSession 上存储权限列表时建议使用的 key
      另请参阅:
  • 构造器详细资料

    • SaSession

      public SaSession()
      构建一个 Session 对象
    • SaSession

      public SaSession(String id)
      构建一个 Session 对象
      参数:
      id - Session的id
  • 方法详细资料

    • getId

      public String getId()
      获取:此 SaSession 的 id
      返回:
      /
    • setId

      public SaSession setId(String id)
      写入:此 SaSession 的 id
      参数:
      id - /
      返回:
      对象自身
    • getType

      public String getType()
      获取:此 SaSession 的 类型
      返回:
      /
    • setType

      public SaSession setType(String type)
      设置:此 SaSession 的 类型
      参数:
      type - /
      返回:
      对象自身
    • getLoginType

      public String getLoginType()
      获取:所属 loginType
      返回:
      /
    • setLoginType

      public SaSession setLoginType(String loginType)
      设置:所属 loginType
      参数:
      loginType - /
      返回:
      对象自身
    • getLoginId

      public Object getLoginId()
      获取:所属 loginId (当此 SaSession 属于 Account-Session 时,此值有效)
      返回:
      /
    • setLoginId

      public SaSession setLoginId(Object loginId)
      设置:所属 loginId (当此 SaSession 属于 Account-Session 时,此值有效)
      参数:
      loginId - /
      返回:
      对象自身
    • getToken

      public String getToken()
      获取:所属 Token (当此 SaSession 属于 Token-Session 时,此值有效)
      返回:
      /
    • setToken

      public SaSession setToken(String token)
      设置:所属 Token (当此 SaSession 属于 Token-Session 时,此值有效)
      参数:
      token - /
      返回:
      对象自身
    • getCreateTime

      public long getCreateTime()
      返回:当前 SaSession 的创建时间(13位时间戳)
      返回:
      /
    • setCreateTime

      public SaSession setCreateTime(long createTime)
      写入:此 SaSession 的创建时间(13位时间戳)
      参数:
      createTime - /
      返回:
      对象自身
    • setTerminalList

      public void setTerminalList(List<SaTerminalInfo> terminalList)
      写入登录终端信息列表
      参数:
      terminalList - /
    • getTerminalList

      public List<SaTerminalInfo> getTerminalList()
      获取登录终端信息列表
      返回:
      /
    • terminalListCopy

      public List<SaTerminalInfo> terminalListCopy()
      获取 登录终端信息列表 (拷贝副本)
      返回:
      /
    • getTerminalListByDeviceType

      public List<SaTerminalInfo> getTerminalListByDeviceType(String deviceType)
      获取 登录终端信息列表 (拷贝副本),根据 deviceType 筛选
      参数:
      deviceType - 设备类型,填 null 代表不限设备类型
      返回:
      /
    • getTokenValueListByDeviceType

      public List<String> getTokenValueListByDeviceType(String deviceType)
      获取 登录终端 token 列表
      参数:
      deviceType - 设备类型,填 null 代表不限设备类型
      返回:
      此 loginId 的所有登录 token
    • getTerminal

      public SaTerminalInfo getTerminal(String tokenValue)
      查找一个终端信息,根据 tokenValue
      参数:
      tokenValue - /
      返回:
      /
    • addTerminal

      public void addTerminal(SaTerminalInfo terminalInfo)
      添加一个终端信息
      参数:
      terminalInfo - /
    • removeTerminal

      public void removeTerminal(String tokenValue)
      移除一个终端信息
      参数:
      tokenValue - token值
    • getHistoryTerminalCount

      public int getHistoryTerminalCount()
      获取 当前账号历史总计登录设备数量 (当此 SaSession 属于 Account-Session 时,此值有效)
      返回:
      /
    • setHistoryTerminalCount

      public void setHistoryTerminalCount(int historyTerminalCount)
      设置 当前账号历史总计登录设备数量 (当此 SaSession 属于 Account-Session 时,此值有效)
      参数:
      historyTerminalCount - /
    • forEachTerminalList

      public void forEachTerminalList(SaTwoParamFunction<SaSession,SaTerminalInfo> function)
      遍历 terminalList 列表,执行特定函数
      参数:
      function - 需要执行的函数
    • isTrustDeviceId

      public boolean isTrustDeviceId(String deviceId)
      判断指定设备 id 是否为可信任设备
      参数:
      deviceId - /
      返回:
      /
    • update

      public void update()
      更新Session(从持久库更新刷新一下)
    • logout

      public void logout()
      注销Session (从持久库删除)
    • logoutByTerminalCountToZero

      public void logoutByTerminalCountToZero()
      当 Session 上的 SaTerminalInfo 数量为零时,注销会话
    • timeout

      public long timeout()
      获取此Session的剩余存活时间 (单位: 秒)
      返回:
      此Session的剩余存活时间 (单位: 秒)
    • updateTimeout

      public void updateTimeout(long timeout)
      修改此Session的剩余存活时间
      参数:
      timeout - 过期时间 (单位: 秒)
    • updateMinTimeout

      public void updateMinTimeout(long minTimeout)
      修改此Session的最小剩余存活时间 (只有在 Session 的过期时间低于指定的 minTimeout 时才会进行修改)
      参数:
      minTimeout - 过期时间 (单位: 秒)
    • updateMaxTimeout

      public void updateMaxTimeout(long maxTimeout)
      修改此Session的最大剩余存活时间 (只有在 Session 的过期时间高于指定的 maxTimeout 时才会进行修改)
      参数:
      maxTimeout - 过期时间 (单位: 秒)
    • trans

      protected long trans(long value)
      value为 -1 时返回 Long.MAX_VALUE,否则原样返回
      参数:
      value - /
      返回:
      /
    • get

      public Object get(String key)
      取值
      指定者:
      get 在接口中 SaGetValueInterface
      参数:
      key - key
      返回:
    • set

      public SaSession set(String key, Object value)
      写值
      指定者:
      set 在接口中 SaSetValueInterface
      参数:
      key - 名称
      value - 值
      返回:
      对象自身
    • setByNull

      public SaSession setByNull(String key, Object value)
      写值 (只有在此 key 原本无值的情况下才会写入)
      指定者:
      setByNull 在接口中 SaSetValueInterface
      参数:
      key - 名称
      value - 值
      返回:
      对象自身
    • delete

      public SaSession delete(String key)
      删值
      指定者:
      delete 在接口中 SaSetValueInterface
      参数:
      key - 要删除的key
      返回:
      对象自身
    • keys

      public Set<String> keys()
      返回当前 Session 挂载数据的所有 key
      返回:
      key 列表
    • clear

      public void clear()
      清空所有挂载数据
    • getDataMap

      public Map<String,Object> getDataMap()
      获取数据挂载集合(如果更新map里的值,请调用 session.update() 方法避免产生脏数据 )
      返回:
      返回底层储存值的map对象
    • setDataMap

      public SaSession setDataMap(Map<String,Object> dataMap)
      设置数据挂载集合 (改变底层对象引用,将 dataMap 整个对象替换)
      参数:
      dataMap - 数据集合
      返回:
      对象自身
    • refreshDataMap

      public SaSession refreshDataMap(Map<String,Object> dataMap)
      写入数据集合 (不改变底层对象引用,只将此 dataMap 所有数据进行替换)
      参数:
      dataMap - 数据集合