mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-10-21 19:17:25 +08:00
update sa-token-core/src/main/java/cn/dev33/satoken/session/SaSession.java.
This commit is contained in:
@@ -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,8 +9,6 @@ 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
|
||||||
*
|
*
|
||||||
@@ -26,7 +26,7 @@ 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<>();
|
||||||
|
|
||||||
// ----------------------- 构建相关
|
// ----------------------- 构建相关
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ public class SaSession implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 此Session绑定的token签名列表
|
* 此Session绑定的token签名列表
|
||||||
*/
|
*/
|
||||||
private List<TokenSign> tokenSignList = new Vector<TokenSign>();
|
private final List<TokenSign> tokenSignList = new Vector<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 返回token签名列表的拷贝副本
|
* 返回token签名列表的拷贝副本
|
||||||
@@ -119,15 +119,17 @@ public class SaSession implements Serializable {
|
|||||||
* @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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -205,7 +207,7 @@ public class SaSession implements Serializable {
|
|||||||
* @return 是否含有
|
* @return 是否含有
|
||||||
*/
|
*/
|
||||||
public boolean containsAttribute(String key) {
|
public boolean containsAttribute(String key) {
|
||||||
return dataMap.keySet().contains(key);
|
return dataMap.containsKey(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user