From f9ec6e64879b3d6a1e317a53a5808db9ed667bbc Mon Sep 17 00:00:00 2001
From: click33 <2393584716@qq.com>
Date: Tue, 19 Oct 2021 20:43:13 +0800
Subject: [PATCH] =?UTF-8?q?v1.27.1=20beta.=20=E7=BB=86=E8=8A=82=E4=BC=98?=
=?UTF-8?q?=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../main/java/cn/dev33/satoken/stp/SaLoginModel.java | 11 ++++++++++-
.../src/main/java/cn/dev33/satoken/stp/StpLogic.java | 4 ++--
sa-token-plugin/sa-token-dao-redis-jackson/pom.xml | 1 +
.../cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java | 8 +++++---
.../cn/dev33/satoken/jwt/StpLogicJwtForStateless.java | 2 +-
5 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/stp/SaLoginModel.java b/sa-token-core/src/main/java/cn/dev33/satoken/stp/SaLoginModel.java
index f5e0bc3b..f3989153 100644
--- a/sa-token-core/src/main/java/cn/dev33/satoken/stp/SaLoginModel.java
+++ b/sa-token-core/src/main/java/cn/dev33/satoken/stp/SaLoginModel.java
@@ -93,7 +93,7 @@ public class SaLoginModel {
/**
* @return 获取device参数,如果为null,则返回默认值
*/
- public String getDeviceOrDefalut() {
+ public String getDeviceOrDefault() {
if(device == null) {
return SaTokenConsts.DEFAULT_LOGIN_DEVICE;
}
@@ -142,4 +142,13 @@ public class SaLoginModel {
return "SaLoginModel [device=" + device + ", isLastingCookie=" + isLastingCookie + ", timeout=" + timeout + "]";
}
+
+ /**
+ * 更换为 getDeviceOrDefault()
+ * @return /
+ */
+ @Deprecated
+ public String getDeviceOrDefalut() {
+ return getDeviceOrDefault();
+ }
}
diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
index 04251490..661b5505 100644
--- a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
+++ b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
@@ -256,7 +256,7 @@ public class StpLogic {
if(config.getIsConcurrent()) {
// 如果配置为共享token, 则尝试从Session签名记录里取出token
if(config.getIsShare()) {
- tokenValue = getTokenValueByLoginId(id, loginModel.getDevice());
+ tokenValue = getTokenValueByLoginId(id, loginModel.getDeviceOrDefault());
}
} else {
// --- 如果不允许并发登录,则将这个账号的历史登录标记为:被顶下线
@@ -272,7 +272,7 @@ public class StpLogic {
session.updateMinTimeout(loginModel.getTimeout());
// 在 User-Session 上记录token签名
- session.addTokenSign(tokenValue, loginModel.getDeviceOrDefalut());
+ session.addTokenSign(tokenValue, loginModel.getDeviceOrDefault());
// ------ 4. 持久化其它数据
// token -> id 映射关系
diff --git a/sa-token-plugin/sa-token-dao-redis-jackson/pom.xml b/sa-token-plugin/sa-token-dao-redis-jackson/pom.xml
index 272da591..6b639a42 100644
--- a/sa-token-plugin/sa-token-dao-redis-jackson/pom.xml
+++ b/sa-token-plugin/sa-token-dao-redis-jackson/pom.xml
@@ -35,6 +35,7 @@
2.11.2
true
+
com.fasterxml.jackson.datatype
jackson-datatype-jsr310
diff --git a/sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java b/sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java
index e1039760..56d77e43 100644
--- a/sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java
+++ b/sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java
@@ -55,14 +55,16 @@ public class SaTokenDaoRedisJackson implements SaTokenDao {
// 指定相应的序列化方案
StringRedisSerializer keySerializer = new StringRedisSerializer();
GenericJackson2JsonRedisSerializer valueSerializer = new GenericJackson2JsonRedisSerializer();
- // 通过反射获取Mapper对象, 配置[忽略未知字段], 增强兼容性
+ // 通过反射获取Mapper对象, 增加一些配置, 增强兼容性
try {
Field field = GenericJackson2JsonRedisSerializer.class.getDeclaredField("mapper");
field.setAccessible(true);
ObjectMapper objectMapper = (ObjectMapper) field.get(valueSerializer);
- objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- objectMapper.registerModule(new JavaTimeModule());
this.objectMapper = objectMapper;
+ // 配置[忽略未知字段]
+ this.objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ // 配置[时间类型转换]
+ this.objectMapper.registerModule(new JavaTimeModule());
} catch (Exception e) {
System.err.println(e.getMessage());
}
diff --git a/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForStateless.java b/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForStateless.java
index 593e088e..45be2c62 100644
--- a/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForStateless.java
+++ b/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForStateless.java
@@ -97,7 +97,7 @@ public class StpLogicJwtForStateless extends StpLogic {
String tokenValue = SaJwtUtil.createToken(
loginType,
id,
- loginModel.getDeviceOrDefalut(),
+ loginModel.getDeviceOrDefault(),
loginModel.getTimeout(),
jwtSecretKey()
);