mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-04-24 18:04:47 +08:00
update sa-token-core/src/main/java/cn/dev33/satoken/session/SaSession.java.
This commit is contained in:
parent
8e4532e1f6
commit
85e5e2b558
@ -1,5 +1,7 @@
|
|||||||
package cn.dev33.satoken.session;
|
package cn.dev33.satoken.session;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.SaTokenManager;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -7,11 +9,9 @@ import java.util.Set;
|
|||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import cn.dev33.satoken.SaTokenManager;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Session Model
|
* Session Model
|
||||||
*
|
*
|
||||||
* @author kong
|
* @author kong
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -26,10 +26,10 @@ public class SaSession implements Serializable {
|
|||||||
private long createTime;
|
private long createTime;
|
||||||
|
|
||||||
/** 此Session的所有挂载数据 */
|
/** 此Session的所有挂载数据 */
|
||||||
private Map<String, Object> dataMap = new ConcurrentHashMap<String, Object>();
|
private final Map<String, Object> dataMap = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
// ----------------------- 构建相关
|
||||||
|
|
||||||
// ----------------------- 构建相关
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建一个Session对象
|
* 构建一个Session对象
|
||||||
*/
|
*/
|
||||||
@ -54,15 +54,15 @@ public class SaSession implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 写入此Session的id
|
* 写入此Session的id
|
||||||
* @param id SessionId
|
* @param id SessionId
|
||||||
* @return 对象自身
|
* @return 对象自身
|
||||||
*/
|
*/
|
||||||
public SaSession setId(String id) {
|
public SaSession setId(String id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 返回当前会话创建时间
|
* 返回当前会话创建时间
|
||||||
* @return 时间戳
|
* @return 时间戳
|
||||||
@ -72,26 +72,26 @@ public class SaSession implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 写入此Session的创建时间
|
* 写入此Session的创建时间
|
||||||
* @param createTime 时间戳
|
* @param createTime 时间戳
|
||||||
* @return 对象自身
|
* @return 对象自身
|
||||||
*/
|
*/
|
||||||
public SaSession setCreateTime(long createTime) {
|
public SaSession setCreateTime(long createTime) {
|
||||||
this.createTime = createTime;
|
this.createTime = createTime;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ----------------------- TokenSign相关
|
// ----------------------- TokenSign相关
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 此Session绑定的token签名列表
|
* 此Session绑定的token签名列表
|
||||||
*/
|
*/
|
||||||
private List<TokenSign> tokenSignList = new Vector<TokenSign>();
|
private final List<TokenSign> tokenSignList = new Vector<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 返回token签名列表的拷贝副本
|
* 返回token签名列表的拷贝副本
|
||||||
*
|
*
|
||||||
* @return token签名列表
|
* @return token签名列表
|
||||||
*/
|
*/
|
||||||
public List<TokenSign> getTokenSignList() {
|
public List<TokenSign> getTokenSignList() {
|
||||||
@ -100,7 +100,7 @@ public class SaSession implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查找一个token签名
|
* 查找一个token签名
|
||||||
*
|
*
|
||||||
* @param tokenValue token值
|
* @param tokenValue token值
|
||||||
* @return 查找到的tokenSign
|
* @return 查找到的tokenSign
|
||||||
*/
|
*/
|
||||||
@ -115,24 +115,26 @@ public class SaSession implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加一个token签名
|
* 添加一个token签名
|
||||||
*
|
*
|
||||||
* @param tokenSign token签名
|
* @param tokenSign token签名
|
||||||
*/
|
*/
|
||||||
public void addTokenSign(TokenSign tokenSign) {
|
public void addTokenSign(TokenSign tokenSign) {
|
||||||
|
// 判断是否存在列表
|
||||||
|
boolean tokenExits = this.getTokenSignList()
|
||||||
|
.stream()
|
||||||
|
.map(TokenSign::getValue)
|
||||||
|
.anyMatch(it -> it.equals(tokenSign.getValue()));
|
||||||
// 如果已经存在于列表中,则无需再次添加
|
// 如果已经存在于列表中,则无需再次添加
|
||||||
for (TokenSign tokenSign2 : getTokenSignList()) {
|
if (tokenExits == false) {
|
||||||
if (tokenSign2.getValue().equals(tokenSign.getValue())) {
|
// 添加并更新
|
||||||
return;
|
tokenSignList.add(tokenSign);
|
||||||
}
|
update();
|
||||||
}
|
}
|
||||||
// 添加并更新
|
|
||||||
tokenSignList.add(tokenSign);
|
|
||||||
update();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 移除一个token签名
|
* 移除一个token签名
|
||||||
*
|
*
|
||||||
* @param tokenValue token名称
|
* @param tokenValue token名称
|
||||||
*/
|
*/
|
||||||
public void removeTokenSign(String tokenValue) {
|
public void removeTokenSign(String tokenValue) {
|
||||||
@ -146,7 +148,7 @@ public class SaSession implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 写入一个值
|
* 写入一个值
|
||||||
*
|
*
|
||||||
* @param key 名称
|
* @param key 名称
|
||||||
* @param value 值
|
* @param value 值
|
||||||
*/
|
*/
|
||||||
@ -157,7 +159,7 @@ public class SaSession implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 取出一个值
|
* 取出一个值
|
||||||
*
|
*
|
||||||
* @param key 名称
|
* @param key 名称
|
||||||
* @return 值
|
* @return 值
|
||||||
*/
|
*/
|
||||||
@ -167,7 +169,7 @@ public class SaSession implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 取值,并指定取不到值时的默认值
|
* 取值,并指定取不到值时的默认值
|
||||||
*
|
*
|
||||||
* @param key 名称
|
* @param key 名称
|
||||||
* @param defaultValue 取不到值的时候返回的默认值
|
* @param defaultValue 取不到值的时候返回的默认值
|
||||||
* @return value
|
* @return value
|
||||||
@ -182,7 +184,7 @@ public class SaSession implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 移除一个值
|
* 移除一个值
|
||||||
*
|
*
|
||||||
* @param key 要移除的值的名字
|
* @param key 要移除的值的名字
|
||||||
*/
|
*/
|
||||||
public void removeAttribute(String key) {
|
public void removeAttribute(String key) {
|
||||||
@ -200,17 +202,17 @@ public class SaSession implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否含有指定key
|
* 是否含有指定key
|
||||||
*
|
*
|
||||||
* @param key 是否含有指定值
|
* @param key 是否含有指定值
|
||||||
* @return 是否含有
|
* @return 是否含有
|
||||||
*/
|
*/
|
||||||
public boolean containsAttribute(String key) {
|
public boolean containsAttribute(String key) {
|
||||||
return dataMap.keySet().contains(key);
|
return dataMap.containsKey(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 返回当前session会话所有key
|
* 返回当前session会话所有key
|
||||||
*
|
*
|
||||||
* @return 所有值的key列表
|
* @return 所有值的key列表
|
||||||
*/
|
*/
|
||||||
public Set<String> attributeKeys() {
|
public Set<String> attributeKeys() {
|
||||||
@ -219,7 +221,7 @@ public class SaSession implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取数据挂载集合(如果更新map里的值,请调用session.update()方法避免产生脏数据 )
|
* 获取数据挂载集合(如果更新map里的值,请调用session.update()方法避免产生脏数据 )
|
||||||
*
|
*
|
||||||
* @return 返回底层储存值的map对象
|
* @return 返回底层储存值的map对象
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> getDataMap() {
|
public Map<String, Object> getDataMap() {
|
||||||
|
Loading…
Reference in New Issue
Block a user