类 SaSession
java.lang.Object
cn.dev33.satoken.session.SaSession
- 所有已实现的接口:
SaGetValueInterface,SaSetValueInterface,Serializable
Session Model,会话作用域的读取值对象
在一次会话范围内: 存值、取值。数据在注销登录后失效。
在 Sa-Token 中,SaSession 分为三种,分别是:
- Account-Session: 指的是框架为每个 账号id 分配的 SaSession。
- Token-Session: 指的是框架为每个 token 分配的 SaSession。
- Custom-Session: 指的是以一个 特定的值 作为SessionId,来分配的 SaSession。
注意:以上分类仅为框架设计层面的概念区分,实际上它们的数据存储格式都是一致的。
- 从以下版本开始:
- 1.10.0
- 作者:
- click33
- 另请参阅:
-
字段概要
字段 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明voidaddTerminal(SaTerminalInfo terminalInfo) 添加一个终端信息voidclear()清空所有挂载数据删值void遍历 terminalList 列表,执行特定函数取值long返回:当前 SaSession 的创建时间(13位时间戳)获取数据挂载集合(如果更新map里的值,请调用 session.update() 方法避免产生脏数据 )int获取 当前账号历史总计登录设备数量 (当此 SaSession 属于 Account-Session 时,此值有效)getId()获取:此 SaSession 的 id获取:所属 loginId (当此 SaSession 属于 Account-Session 时,此值有效)获取:所属 loginTypegetTerminal(String tokenValue) 查找一个终端信息,根据 tokenValue获取登录终端信息列表getTerminalListByDeviceType(String deviceType) 获取 登录终端信息列表 (拷贝副本),根据 deviceType 筛选getToken()获取:所属 Token (当此 SaSession 属于 Token-Session 时,此值有效)getTokenValueListByDeviceType(String deviceType) 获取 登录终端 token 列表getType()获取:此 SaSession 的 类型booleanisTrustDeviceId(String deviceId) 判断指定设备 id 是否为可信任设备keys()返回当前 Session 挂载数据的所有 keyvoidlogout()注销Session (从持久库删除)void当 Session 上的 SaTerminalInfo 数量为零时,注销会话refreshDataMap(Map<String, Object> dataMap) 写入数据集合 (不改变底层对象引用,只将此 dataMap 所有数据进行替换)voidremoveTerminal(String tokenValue) 移除一个终端信息写值写值 (只有在此 key 原本无值的情况下才会写入)setCreateTime(long createTime) 写入:此 SaSession 的创建时间(13位时间戳)setDataMap(Map<String, Object> dataMap) 设置数据挂载集合 (改变底层对象引用,将 dataMap 整个对象替换)voidsetHistoryTerminalCount(int historyTerminalCount) 设置 当前账号历史总计登录设备数量 (当此 SaSession 属于 Account-Session 时,此值有效)写入:此 SaSession 的 idsetLoginId(Object loginId) 设置:所属 loginId (当此 SaSession 属于 Account-Session 时,此值有效)setLoginType(String loginType) 设置:所属 loginTypevoidsetTerminalList(List<SaTerminalInfo> terminalList) 写入登录终端信息列表设置:所属 Token (当此 SaSession 属于 Token-Session 时,此值有效)设置:此 SaSession 的 类型获取 登录终端信息列表 (拷贝副本)longtimeout()获取此Session的剩余存活时间 (单位: 秒)protected longtrans(long value) value为 -1 时返回 Long.MAX_VALUE,否则原样返回voidupdate()更新Session(从持久库更新刷新一下)voidupdateMaxTimeout(long maxTimeout) 修改此Session的最大剩余存活时间 (只有在 Session 的过期时间高于指定的 maxTimeout 时才会进行修改)voidupdateMinTimeout(long minTimeout) 修改此Session的最小剩余存活时间 (只有在 Session 的过期时间低于指定的 minTimeout 时才会进行修改)voidupdateTimeout(long timeout) 修改此Session的剩余存活时间从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait从接口继承的方法 cn.dev33.satoken.application.SaGetValueInterface
get, getDouble, getFloat, getInt, getLong, getModel, getModel, getString, getValueByDefaultValue, has, valueIsNull从接口继承的方法 cn.dev33.satoken.application.SaSetValueInterface
get
-
字段详细资料
-
构造器详细资料
-
SaSession
public SaSession()构建一个 Session 对象 -
SaSession
构建一个 Session 对象- 参数:
id- Session的id
-
-
方法详细资料
-
getId
获取:此 SaSession 的 id- 返回:
- /
-
setId
写入:此 SaSession 的 id- 参数:
id- /- 返回:
- 对象自身
-
getType
获取:此 SaSession 的 类型- 返回:
- /
-
setType
设置:此 SaSession 的 类型- 参数:
type- /- 返回:
- 对象自身
-
getLoginType
获取:所属 loginType- 返回:
- /
-
setLoginType
设置:所属 loginType- 参数:
loginType- /- 返回:
- 对象自身
-
getLoginId
获取:所属 loginId (当此 SaSession 属于 Account-Session 时,此值有效)- 返回:
- /
-
setLoginId
设置:所属 loginId (当此 SaSession 属于 Account-Session 时,此值有效)- 参数:
loginId- /- 返回:
- 对象自身
-
getToken
获取:所属 Token (当此 SaSession 属于 Token-Session 时,此值有效)- 返回:
- /
-
setToken
设置:所属 Token (当此 SaSession 属于 Token-Session 时,此值有效)- 参数:
token- /- 返回:
- 对象自身
-
getCreateTime
public long getCreateTime()返回:当前 SaSession 的创建时间(13位时间戳)- 返回:
- /
-
setCreateTime
写入:此 SaSession 的创建时间(13位时间戳)- 参数:
createTime- /- 返回:
- 对象自身
-
setTerminalList
写入登录终端信息列表- 参数:
terminalList- /
-
getTerminalList
获取登录终端信息列表- 返回:
- /
-
terminalListCopy
获取 登录终端信息列表 (拷贝副本)- 返回:
- /
-
getTerminalListByDeviceType
获取 登录终端信息列表 (拷贝副本),根据 deviceType 筛选- 参数:
deviceType- 设备类型,填 null 代表不限设备类型- 返回:
- /
-
getTokenValueListByDeviceType
获取 登录终端 token 列表- 参数:
deviceType- 设备类型,填 null 代表不限设备类型- 返回:
- 此 loginId 的所有登录 token
-
getTerminal
查找一个终端信息,根据 tokenValue- 参数:
tokenValue- /- 返回:
- /
-
addTerminal
添加一个终端信息- 参数:
terminalInfo- /
-
removeTerminal
移除一个终端信息- 参数:
tokenValue- token值
-
getHistoryTerminalCount
public int getHistoryTerminalCount()获取 当前账号历史总计登录设备数量 (当此 SaSession 属于 Account-Session 时,此值有效)- 返回:
- /
-
setHistoryTerminalCount
public void setHistoryTerminalCount(int historyTerminalCount) 设置 当前账号历史总计登录设备数量 (当此 SaSession 属于 Account-Session 时,此值有效)- 参数:
historyTerminalCount- /
-
forEachTerminalList
遍历 terminalList 列表,执行特定函数- 参数:
function- 需要执行的函数
-
isTrustDeviceId
判断指定设备 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
取值- 指定者:
get在接口中SaGetValueInterface- 参数:
key- key- 返回:
- 值
-
set
写值- 指定者:
set在接口中SaSetValueInterface- 参数:
key- 名称value- 值- 返回:
- 对象自身
-
setByNull
写值 (只有在此 key 原本无值的情况下才会写入)- 指定者:
setByNull在接口中SaSetValueInterface- 参数:
key- 名称value- 值- 返回:
- 对象自身
-
delete
删值- 指定者:
delete在接口中SaSetValueInterface- 参数:
key- 要删除的key- 返回:
- 对象自身
-
keys
返回当前 Session 挂载数据的所有 key- 返回:
- key 列表
-
clear
public void clear()清空所有挂载数据 -
getDataMap
获取数据挂载集合(如果更新map里的值,请调用 session.update() 方法避免产生脏数据 )- 返回:
- 返回底层储存值的map对象
-
setDataMap
设置数据挂载集合 (改变底层对象引用,将 dataMap 整个对象替换)- 参数:
dataMap- 数据集合- 返回:
- 对象自身
-
refreshDataMap
写入数据集合 (不改变底层对象引用,只将此 dataMap 所有数据进行替换)- 参数:
dataMap- 数据集合
-