类 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 - /
      返回:
      对象自身
    • setTokenSignList

      public void setTokenSignList(List<TokenSign> tokenSignList)
      写入此 Session 绑定的 Token 签名列表
      参数:
      tokenSignList - Token 签名列表
    • getTokenSignList

      public List<TokenSign> getTokenSignList()
      获取此 Session 绑定的 Token 签名列表
      返回:
      Token 签名列表
    • tokenSignListCopy

      public List<TokenSign> tokenSignListCopy()
      获取 Token 签名列表 的拷贝副本
      返回:
      token签名列表
    • getTokenSignListByDevice

      public List<TokenSign> getTokenSignListByDevice(String device)
      返回 Token 签名列表 的拷贝副本,根据 device 筛选
      参数:
      device - 设备类型,填 null 代表不限设备类型
      返回:
      token签名列表
    • getTokenValueListByDevice

      public List<String> getTokenValueListByDevice(String device)
      获取当前 Session 上的所有 token 列表
      参数:
      device - 设备类型,填 null 代表不限设备类型
      返回:
      此 loginId 的所有登录 token
    • getTokenSign

      public TokenSign getTokenSign(String tokenValue)
      查找一个 Token 签名
      参数:
      tokenValue - token值
      返回:
      查找到的 TokenSign
    • addTokenSign

      public void addTokenSign(TokenSign tokenSign)
      添加一个 Token 签名
      参数:
      tokenSign - Token 签名
    • addTokenSign

      @Deprecated public void addTokenSign(String tokenValue, String device)
      已过时。
      添加一个 Token 签名
      参数:
      tokenValue - token值
      device - 设备类型
    • removeTokenSign

      public void removeTokenSign(String tokenValue)
      移除一个 Token 签名
      参数:
      tokenValue - token值
    • update

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

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

      public void logoutByTokenSignCountToZero()
      当Session上的tokenSign数量为零时,注销会话
    • getTimeout

      public long getTimeout()
      获取此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对象
    • refreshDataMap

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

      @Deprecated public List<TokenSign> tokenSignListCopyByDevice(String device)
      已过时。
      请更换为:getTokenSignListByDevice(device)
      参数:
      device - 设备类型,填 null 代表不限设备类型
      返回:
      token签名列表