新增 StpUtil.getExtra(tokenValue, key) 方法,用于获取任意 token 的扩展参数。

This commit is contained in:
click33
2022-08-08 16:38:55 +08:00
parent a2ec360aef
commit cd909f4137
8 changed files with 64 additions and 12 deletions

View File

@@ -743,13 +743,23 @@ public class StpLogic {
} }
/** /**
* 获取Token扩展信息只在jwt模式下效) * 获取当前 Token扩展信息(此函数只在jwt模式下效)
* @param key 键值 * @param key 键值
* @return 对应的扩展数据 * @return 对应的扩展数据
*/ */
public Object getExtra(String key) { public Object getExtra(String key) {
throw new ApiDisabledException(); throw new ApiDisabledException();
} }
/**
* 获取指定 Token 的扩展信息此函数只在jwt模式下生效
* @param tokenValue 指定的 Token 值
* @param key 键值
* @return 对应的扩展数据
*/
public Object getExtra(String tokenValue, String key) {
throw new ApiDisabledException();
}
// ---- 其它操作 // ---- 其它操作

View File

@@ -313,13 +313,23 @@ public class StpUtil {
} }
/** /**
* 获取Token扩展信息只在jwt模式下效) * 获取当前 Token扩展信息(此函数只在jwt模式下效)
* @param key 键值 * @param key 键值
* @return 对应的扩展数据 * @return 对应的扩展数据
*/ */
public static Object getExtra(String key) { public static Object getExtra(String key) {
return stpLogic.getExtra(key); return stpLogic.getExtra(key);
} }
/**
* 获取指定 Token 的扩展信息此函数只在jwt模式下生效
* @param tokenValue 指定的 Token 值
* @param key 键值
* @return 对应的扩展数据
*/
public static Object getExtra(String tokenValue, String key) {
return stpLogic.getExtra(tokenValue, key);
}
// =================== User-Session 相关 =================== // =================== User-Session 相关 ===================

View File

@@ -150,11 +150,19 @@ public class StpLogicJwtForMixin extends StpLogic {
} }
/** /**
* 获取Token携带的扩展信息 * 获取当前 Token 的扩展信息
*/ */
@Override @Override
public Object getExtra(String key) { public Object getExtra(String key) {
return SaJwtUtil.getPayloads(getTokenValue(), loginType, jwtSecretKey()).get(key); return getExtra(getTokenValue(), key);
}
/**
* 获取指定 Token 的扩展信息
*/
@Override
public Object getExtra(String tokenValue, String key) {
return SaJwtUtil.getPayloads(tokenValue, loginType, jwtSecretKey()).get(key);
} }
/** /**

View File

@@ -49,11 +49,19 @@ public class StpLogicJwtForSimple extends StpLogic {
} }
/** /**
* 获取Token携带的扩展信息 * 获取当前 Token 的扩展信息
*/ */
@Override @Override
public Object getExtra(String key) { public Object getExtra(String key) {
return SaJwtUtil.getPayloadsNotCheck(getTokenValue(), loginType, jwtSecretKey()).get(key); return getExtra(getTokenValue(), key);
}
/**
* 获取指定 Token 的扩展信息
*/
@Override
public Object getExtra(String tokenValue, String key) {
return SaJwtUtil.getPayloadsNotCheck(tokenValue, loginType, jwtSecretKey()).get(key);
} }
} }

View File

@@ -138,11 +138,19 @@ public class StpLogicJwtForStateless extends StpLogic {
} }
/** /**
* 获取Token携带的扩展信息 * 获取当前 Token 的扩展信息
*/ */
@Override @Override
public Object getExtra(String key) { public Object getExtra(String key) {
return SaJwtUtil.getPayloads(getTokenValue(), loginType, jwtSecretKey()).get(key); return getExtra(getTokenValue(), key);
}
/**
* 获取指定 Token 的扩展信息
*/
@Override
public Object getExtra(String tokenValue, String key) {
return SaJwtUtil.getPayloads(tokenValue, loginType, jwtSecretKey()).get(key);
} }

View File

@@ -38,14 +38,14 @@ public class JwtForMixinTest {
// 开始 // 开始
@BeforeAll @BeforeAll
public static void beforeClass() { public static void beforeClass() {
System.out.println("\n\n------------------------ JwtForMixTest star ..."); System.out.println("\n\n------------------------ JwtForMixinTest star ...");
StpUtil.setStpLogic(new StpLogicJwtForMixin()); StpUtil.setStpLogic(new StpLogicJwtForMixin());
} }
// 结束 // 结束
@AfterAll @AfterAll
public static void afterClass() { public static void afterClass() {
System.out.println("\n\n------------------------ JwtForMixTest end ... \n"); System.out.println("\n\n------------------------ JwtForMixinTest end ... \n");
} }
// 测试:登录 // 测试:登录
@@ -261,9 +261,12 @@ public class JwtForMixinTest {
public void getExtra() { public void getExtra() {
// 登录 // 登录
StpUtil.login(10001, SaLoginConfig.setExtra("name", "zhangsan")); StpUtil.login(10001, SaLoginConfig.setExtra("name", "zhangsan"));
String tokenValue = StpUtil.getTokenValue();
// 可以取到 // 可以取到
Assertions.assertEquals(StpUtil.getExtra("name"), "zhangsan"); Assertions.assertEquals(StpUtil.getExtra("name"), "zhangsan");
Assertions.assertEquals(StpUtil.getExtra(tokenValue, "name"), "zhangsan");
// 取不到 // 取不到
Assertions.assertEquals(StpUtil.getExtra("name2"), null); Assertions.assertEquals(StpUtil.getExtra("name2"), null);
} }

View File

@@ -32,7 +32,7 @@ public class JwtForSimpleTest {
// 开始 // 开始
@BeforeAll @BeforeAll
public static void beforeClass() { public static void beforeClass() {
System.out.println("\n\n------------------------ JwtForStyleTest star ..."); System.out.println("\n\n------------------------ JwtForSimpleTest star ...");
dao = SaManager.getSaTokenDao(); dao = SaManager.getSaTokenDao();
StpUtil.setStpLogic(new StpLogicJwtForSimple()); StpUtil.setStpLogic(new StpLogicJwtForSimple());
} }
@@ -40,7 +40,7 @@ public class JwtForSimpleTest {
// 结束 // 结束
@AfterAll @AfterAll
public static void afterClass() { public static void afterClass() {
System.out.println("\n\n------------------------ JwtForStyleTest end ... \n"); System.out.println("\n\n------------------------ JwtForSimpleTest end ... \n");
} }
// 测试:登录 // 测试:登录
@@ -76,9 +76,11 @@ public class JwtForSimpleTest {
public void getExtra() { public void getExtra() {
// 登录 // 登录
StpUtil.login(10001, SaLoginConfig.setExtra("name", "zhangsan")); StpUtil.login(10001, SaLoginConfig.setExtra("name", "zhangsan"));
String tokenValue = StpUtil.getTokenValue();
// 可以取到 // 可以取到
Assertions.assertEquals(StpUtil.getExtra("name"), "zhangsan"); Assertions.assertEquals(StpUtil.getExtra("name"), "zhangsan");
Assertions.assertEquals(StpUtil.getExtra(tokenValue, "name"), "zhangsan");
// 取不到 // 取不到
Assertions.assertEquals(StpUtil.getExtra("name2"), null); Assertions.assertEquals(StpUtil.getExtra("name2"), null);
} }

View File

@@ -170,9 +170,12 @@ public class JwtForStatelessTest {
public void getExtra() { public void getExtra() {
// 登录 // 登录
StpUtil.login(10001, SaLoginConfig.setExtra("name", "zhangsan")); StpUtil.login(10001, SaLoginConfig.setExtra("name", "zhangsan"));
String tokenValue = StpUtil.getTokenValue();
// 可以取到 // 可以取到
Assertions.assertEquals(StpUtil.getExtra("name"), "zhangsan"); Assertions.assertEquals(StpUtil.getExtra("name"), "zhangsan");
Assertions.assertEquals(StpUtil.getExtra(tokenValue, "name"), "zhangsan");
// 取不到 // 取不到
Assertions.assertEquals(StpUtil.getExtra("name2"), null); Assertions.assertEquals(StpUtil.getExtra("name2"), null);
} }