refactor: 重构 TokenSign -> SaTerminalInfo
This commit is contained in:
@@ -65,7 +65,7 @@ public class JwtForMixinTest {
|
||||
JWT jwt = JWT.of(token);
|
||||
JSONObject payloads = jwt.getPayloads();
|
||||
Assertions.assertEquals(payloads.getStr(SaJwtUtil.LOGIN_ID), "10001"); // 账号
|
||||
Assertions.assertEquals(payloads.getStr(SaJwtUtil.DEVICE), SaTokenConsts.DEFAULT_LOGIN_DEVICE); // 登录设备类型
|
||||
Assertions.assertEquals(payloads.getStr(SaJwtUtil.DEVICE_TYPE), SaTokenConsts.DEFAULT_LOGIN_DEVICE); // 登录设备类型
|
||||
Assertions.assertEquals(payloads.getStr(SaJwtUtil.LOGIN_TYPE), StpUtil.TYPE); // 账号类型
|
||||
|
||||
// db数据 验证
|
||||
@@ -75,7 +75,7 @@ public class JwtForMixinTest {
|
||||
SaSession session = dao.getSession("satoken:login:session:" + 10001);
|
||||
Assertions.assertNotNull(session);
|
||||
Assertions.assertEquals(session.getId(), "satoken:login:session:" + 10001);
|
||||
Assertions.assertTrue(session.getTokenSignList().size() >= 1);
|
||||
Assertions.assertTrue(session.getTerminalList().size() >= 1);
|
||||
}
|
||||
|
||||
// 测试:注销
|
||||
|
||||
@@ -68,7 +68,7 @@ public class JwtForSimpleTest {
|
||||
SaSession session = dao.getSession("satoken:login:session:" + 10001);
|
||||
Assertions.assertNotNull(session);
|
||||
Assertions.assertEquals(session.getId(), "satoken:login:session:" + 10001);
|
||||
Assertions.assertTrue(session.getTokenSignList().size() >= 1);
|
||||
Assertions.assertTrue(session.getTerminalList().size() >= 1);
|
||||
}
|
||||
|
||||
// 测试:getExtra
|
||||
|
||||
@@ -61,7 +61,7 @@ public class JwtForStatelessTest {
|
||||
JWT jwt = JWT.of(token);
|
||||
JSONObject payloads = jwt.getPayloads();
|
||||
Assertions.assertEquals(payloads.getStr(SaJwtUtil.LOGIN_ID), "10001"); // 账号
|
||||
Assertions.assertEquals(payloads.getStr(SaJwtUtil.DEVICE), SaTokenConsts.DEFAULT_LOGIN_DEVICE); // 登录设备类型
|
||||
Assertions.assertEquals(payloads.getStr(SaJwtUtil.DEVICE_TYPE), SaTokenConsts.DEFAULT_LOGIN_DEVICE); // 登录设备类型
|
||||
Assertions.assertEquals(payloads.getStr(SaJwtUtil.LOGIN_TYPE), StpUtil.TYPE); // 账号类型
|
||||
|
||||
// 时间
|
||||
|
||||
+24
-25
@@ -15,18 +15,17 @@
|
||||
*/
|
||||
package cn.dev33.satoken.core.session;
|
||||
|
||||
import cn.dev33.satoken.SaManager;
|
||||
import cn.dev33.satoken.session.SaSession;
|
||||
import cn.dev33.satoken.session.SaTerminalInfo;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import cn.dev33.satoken.SaManager;
|
||||
import cn.dev33.satoken.session.SaSession;
|
||||
import cn.dev33.satoken.session.TokenSign;
|
||||
|
||||
/**
|
||||
* SaSession 测试
|
||||
*
|
||||
@@ -112,33 +111,33 @@ public class SaSessionTest {
|
||||
SaSession session = new SaSession("session-1002");
|
||||
|
||||
// 添加 Token 签名
|
||||
session.addTokenSign(new TokenSign("xxxx-xxxx-xxxx-xxxx-1", "PC", null));
|
||||
session.addTokenSign(new TokenSign("xxxx-xxxx-xxxx-xxxx-2", "APP", null));
|
||||
session.addTerminal(new SaTerminalInfo(1, "xxxx-xxxx-xxxx-xxxx-1", "PC", null));
|
||||
session.addTerminal(new SaTerminalInfo(2, "xxxx-xxxx-xxxx-xxxx-2", "APP", null));
|
||||
|
||||
// 查询
|
||||
Assertions.assertEquals(session.getTokenSignList().size(), 2);
|
||||
Assertions.assertEquals(session.getTokenSign("xxxx-xxxx-xxxx-xxxx-1").getDevice(), "PC");
|
||||
Assertions.assertEquals(session.getTokenSign("xxxx-xxxx-xxxx-xxxx-2").getDevice(), "APP");
|
||||
Assertions.assertEquals(session.getTerminalList().size(), 2);
|
||||
Assertions.assertEquals(session.getTerminal("xxxx-xxxx-xxxx-xxxx-1").getDeviceType(), "PC");
|
||||
Assertions.assertEquals(session.getTerminal("xxxx-xxxx-xxxx-xxxx-2").getDeviceType(), "APP");
|
||||
|
||||
// 删除一个
|
||||
session.removeTokenSign("xxxx-xxxx-xxxx-xxxx-1");
|
||||
Assertions.assertEquals(session.getTokenSignList().size(), 1);
|
||||
session.removeTerminal("xxxx-xxxx-xxxx-xxxx-1");
|
||||
Assertions.assertEquals(session.getTerminalList().size(), 1);
|
||||
|
||||
// 删除一个不存在的,则不影响 TokenSign 列表
|
||||
session.removeTokenSign("xxxx-xxxx-xxxx-xxxx-999");
|
||||
Assertions.assertEquals(session.getTokenSignList().size(), 1);
|
||||
session.removeTerminal("xxxx-xxxx-xxxx-xxxx-999");
|
||||
Assertions.assertEquals(session.getTerminalList().size(), 1);
|
||||
|
||||
// 重置整个签名列表
|
||||
List<TokenSign> list = Arrays.asList(
|
||||
new TokenSign("xxxx-xxxx-xxxx-xxxx-1", "WEB", null),
|
||||
new TokenSign("xxxx-xxxx-xxxx-xxxx-2", "phone", null),
|
||||
new TokenSign("xxxx-xxxx-xxxx-xxxx-3", "ipad", null)
|
||||
List<SaTerminalInfo> list = Arrays.asList(
|
||||
new SaTerminalInfo(1, "xxxx-xxxx-xxxx-xxxx-1", "WEB", null),
|
||||
new SaTerminalInfo(2, "xxxx-xxxx-xxxx-xxxx-2", "phone", null),
|
||||
new SaTerminalInfo(3, "xxxx-xxxx-xxxx-xxxx-3", "ipad", null)
|
||||
);
|
||||
session.setTokenSignList(list);
|
||||
Assertions.assertEquals(session.getTokenSignList().size(), 3);
|
||||
Assertions.assertEquals(session.getTokenSign("xxxx-xxxx-xxxx-xxxx-1").getDevice(), "WEB");
|
||||
Assertions.assertEquals(session.getTokenSign("xxxx-xxxx-xxxx-xxxx-2").getDevice(), "phone");
|
||||
Assertions.assertEquals(session.getTokenSign("xxxx-xxxx-xxxx-xxxx-3").getDevice(), "ipad");
|
||||
session.setTerminalList(list);
|
||||
Assertions.assertEquals(session.getTerminalList().size(), 3);
|
||||
Assertions.assertEquals(session.getTerminal("xxxx-xxxx-xxxx-xxxx-1").getDeviceType(), "WEB");
|
||||
Assertions.assertEquals(session.getTerminal("xxxx-xxxx-xxxx-xxxx-2").getDeviceType(), "phone");
|
||||
Assertions.assertEquals(session.getTerminal("xxxx-xxxx-xxxx-xxxx-3").getDeviceType(), "ipad");
|
||||
}
|
||||
|
||||
// 测试重置 DataMap
|
||||
|
||||
+8
-9
@@ -15,28 +15,27 @@
|
||||
*/
|
||||
package cn.dev33.satoken.core.session;
|
||||
|
||||
import cn.dev33.satoken.session.SaTerminalInfo;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import cn.dev33.satoken.session.TokenSign;
|
||||
|
||||
/**
|
||||
* TokenSign 相关测试
|
||||
*
|
||||
* @author click33
|
||||
* @since 2022-9-4
|
||||
*/
|
||||
public class TokenSignTest {
|
||||
public class SaTerminalInfoTest {
|
||||
|
||||
// 测试
|
||||
@Test
|
||||
public void testTokenSign() {
|
||||
TokenSign tokenSign = new TokenSign();
|
||||
tokenSign.setDevice("PC");
|
||||
tokenSign.setValue("ttt-value");
|
||||
public void testSaTerminalInfo() {
|
||||
SaTerminalInfo tokenSign = new SaTerminalInfo();
|
||||
tokenSign.setDeviceType("PC");
|
||||
tokenSign.setTokenValue("ttt-value");
|
||||
|
||||
Assertions.assertEquals(tokenSign.getDevice(), "PC");
|
||||
Assertions.assertEquals(tokenSign.getValue(), "ttt-value");
|
||||
Assertions.assertEquals(tokenSign.getDeviceType(), "PC");
|
||||
Assertions.assertEquals(tokenSign.getTokenValue(), "ttt-value");
|
||||
|
||||
Assertions.assertNotNull(tokenSign.toString());
|
||||
}
|
||||
+3
-3
@@ -44,7 +44,7 @@ public class TokenInfoTest {
|
||||
info.setSessionTimeout(120);
|
||||
info.setTokenSessionTimeout(1800);
|
||||
info.setTokenActiveTimeout(120);
|
||||
info.setLoginDevice("PC");
|
||||
info.setLoginDeviceType("PC");
|
||||
info.setTag("xxx");
|
||||
|
||||
Assertions.assertEquals(info.getTokenName(), "satoken");
|
||||
@@ -56,7 +56,7 @@ public class TokenInfoTest {
|
||||
Assertions.assertEquals(info.getSessionTimeout(), 120);
|
||||
Assertions.assertEquals(info.getTokenSessionTimeout(), 1800);
|
||||
Assertions.assertEquals(info.getTokenActiveTimeout(), 120);
|
||||
Assertions.assertEquals(info.getLoginDevice(), "PC");
|
||||
Assertions.assertEquals(info.getLoginDeviceType(), "PC");
|
||||
Assertions.assertEquals(info.getTag(), "xxx");
|
||||
|
||||
Assertions.assertNotNull(info.toString());
|
||||
@@ -64,7 +64,7 @@ public class TokenInfoTest {
|
||||
|
||||
@Test
|
||||
public void testLoginParameter() {
|
||||
Assertions.assertEquals(new SaLoginParameter().setDevice("PC").getDevice(), "PC");
|
||||
Assertions.assertEquals(new SaLoginParameter().setDeviceType("PC").getDeviceType(), "PC");
|
||||
Assertions.assertEquals(new SaLoginParameter().setIsLastingCookie(false).getIsLastingCookie(), false);
|
||||
Assertions.assertEquals(new SaLoginParameter().setTimeout(1600).getTimeout(), 1600);
|
||||
Assertions.assertEquals(new SaLoginParameter().setToken("token-xxx").getToken(), "token-xxx");
|
||||
|
||||
+1
-1
@@ -128,7 +128,7 @@ public class BasicsTest {
|
||||
SaSession session = dao.getSession("satoken:login:session:" + 10001);
|
||||
Assertions.assertNotNull(session);
|
||||
Assertions.assertEquals(session.getId(), "satoken:login:session:" + 10001);
|
||||
Assertions.assertTrue(session.getTokenSignList().size() >= 1);
|
||||
Assertions.assertTrue(session.getTerminalList().size() >= 1);
|
||||
}
|
||||
|
||||
// 测试:注销
|
||||
|
||||
+10
-11
@@ -15,8 +15,12 @@
|
||||
*/
|
||||
package cn.dev33.satoken.springboot;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.dev33.satoken.SaManager;
|
||||
import cn.dev33.satoken.config.SaTokenConfig;
|
||||
import cn.dev33.satoken.dao.SaTokenDao;
|
||||
import cn.dev33.satoken.session.SaTerminalInfo;
|
||||
import cn.dev33.satoken.stp.StpLogic;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
@@ -24,12 +28,7 @@ import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
import cn.dev33.satoken.SaManager;
|
||||
import cn.dev33.satoken.config.SaTokenConfig;
|
||||
import cn.dev33.satoken.dao.SaTokenDao;
|
||||
import cn.dev33.satoken.session.TokenSign;
|
||||
import cn.dev33.satoken.stp.StpLogic;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Sa-Token 多端登录测试
|
||||
@@ -115,9 +114,9 @@ public class ManyLoginTest {
|
||||
Assertions.assertEquals(dao.get("satoken:login:token:" + token1), "-4");
|
||||
|
||||
// Account-Session里的 token1 签名会被移除
|
||||
List<TokenSign> tokenSignList = StpUtil.getSessionByLoginId(10001).getTokenSignList();
|
||||
for (TokenSign tokenSign : tokenSignList) {
|
||||
Assertions.assertNotEquals(tokenSign.getValue(), token1);
|
||||
List<SaTerminalInfo> tokenSignList = StpUtil.getSessionByLoginId(10001).getTerminalList();
|
||||
for (SaTerminalInfo terminal : tokenSignList) {
|
||||
Assertions.assertNotEquals(terminal.getTokenValue(), token1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user