update sa-token-core/src/main/java/cn/dev33/satoken/session/SaSession.java.

This commit is contained in:
xiaoshitou
2021-02-13 18:28:11 +08:00
committed by Gitee
parent 8e4532e1f6
commit 85e5e2b558

View File

@@ -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);
} }
/** /**