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() );