diff --git a/sa-token-plugin/sa-token-redis-template-jdk-serializer/src/main/java/cn/dev33/satoken/dao/SaTokenDaoForRedisTemplate.java b/sa-token-plugin/sa-token-redis-template-jdk-serializer/src/main/java/cn/dev33/satoken/dao/SaTokenDaoForRedisTemplate.java index 72570fef..b6133d2d 100644 --- a/sa-token-plugin/sa-token-redis-template-jdk-serializer/src/main/java/cn/dev33/satoken/dao/SaTokenDaoForRedisTemplate.java +++ b/sa-token-plugin/sa-token-redis-template-jdk-serializer/src/main/java/cn/dev33/satoken/dao/SaTokenDaoForRedisTemplate.java @@ -95,12 +95,18 @@ public class SaTokenDaoForRedisTemplate implements SaTokenDaoByObjectFollowStrin */ @Override public void update(String key, String value) { - long expire = getTimeout(key); - // -2 = 无此键 - if(expire == SaTokenDao.NOT_VALUE_EXPIRE) { + @SuppressWarnings("all") + long expireMs = stringRedisTemplate.getExpire(key, TimeUnit.MILLISECONDS); + // -2 = 无此键 + if (expireMs == SaTokenDao.NOT_VALUE_EXPIRE) { return; } - this.set(key, value, expire); + // -1 = 永不过期 + if(expireMs == SaTokenDao.NEVER_EXPIRE) { + stringRedisTemplate.opsForValue().set(key, value); + } else { + stringRedisTemplate.opsForValue().set(key, value, expireMs, TimeUnit.MILLISECONDS); + } } /** diff --git a/sa-token-plugin/sa-token-redis-template-jdk-serializer/src/main/java/cn/dev33/satoken/dao/SaTokenDaoForRedisTemplateUseJdkSerializer.java b/sa-token-plugin/sa-token-redis-template-jdk-serializer/src/main/java/cn/dev33/satoken/dao/SaTokenDaoForRedisTemplateUseJdkSerializer.java index 94fb4532..a57a91cc 100644 --- a/sa-token-plugin/sa-token-redis-template-jdk-serializer/src/main/java/cn/dev33/satoken/dao/SaTokenDaoForRedisTemplateUseJdkSerializer.java +++ b/sa-token-plugin/sa-token-redis-template-jdk-serializer/src/main/java/cn/dev33/satoken/dao/SaTokenDaoForRedisTemplateUseJdkSerializer.java @@ -95,12 +95,18 @@ public class SaTokenDaoForRedisTemplateUseJdkSerializer extends SaTokenDaoForRed */ @Override public void updateObject(String key, Object object) { - long expire = getObjectTimeout(key); - // -2 = 无此键 - if(expire == SaTokenDao.NOT_VALUE_EXPIRE) { + @SuppressWarnings("all") + long expireMs = stringRedisTemplate.getExpire(key, TimeUnit.MILLISECONDS); + // -2 = 无此键 + if (expireMs == SaTokenDao.NOT_VALUE_EXPIRE) { return; } - this.setObject(key, object, expire); + // -1 = 永不过期 + if(expireMs == SaTokenDao.NEVER_EXPIRE) { + objectRedisTemplate.opsForValue().set(key, object); + } else { + objectRedisTemplate.opsForValue().set(key, object, expireMs, TimeUnit.MILLISECONDS); + } } /** diff --git a/sa-token-plugin/sa-token-redis-template/src/main/java/cn/dev33/satoken/dao/SaTokenDaoForRedisTemplate.java b/sa-token-plugin/sa-token-redis-template/src/main/java/cn/dev33/satoken/dao/SaTokenDaoForRedisTemplate.java index 35955b12..06ef8797 100644 --- a/sa-token-plugin/sa-token-redis-template/src/main/java/cn/dev33/satoken/dao/SaTokenDaoForRedisTemplate.java +++ b/sa-token-plugin/sa-token-redis-template/src/main/java/cn/dev33/satoken/dao/SaTokenDaoForRedisTemplate.java @@ -94,12 +94,18 @@ public class SaTokenDaoForRedisTemplate implements SaTokenDaoByObjectFollowStrin */ @Override public void update(String key, String value) { - long expire = getTimeout(key); - // -2 = 无此键 - if(expire == SaTokenDao.NOT_VALUE_EXPIRE) { + @SuppressWarnings("all") + long expireMs = stringRedisTemplate.getExpire(key, TimeUnit.MILLISECONDS); + // -2 = 无此键 + if (expireMs == SaTokenDao.NOT_VALUE_EXPIRE) { return; } - this.set(key, value, expire); + // -1 = 永不过期 + if(expireMs == SaTokenDao.NEVER_EXPIRE) { + stringRedisTemplate.opsForValue().set(key, value); + } else { + stringRedisTemplate.opsForValue().set(key, value, expireMs, TimeUnit.MILLISECONDS); + } } /**