diff --git a/sa-token-plugin/sa-token-dao-redisson-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedissonJackson.java b/sa-token-plugin/sa-token-dao-redisson-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedissonJackson.java index b0ea9d45..652e4571 100644 --- a/sa-token-plugin/sa-token-dao-redisson-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedissonJackson.java +++ b/sa-token-plugin/sa-token-dao-redisson-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedissonJackson.java @@ -15,6 +15,7 @@ import org.redisson.api.RBatch; import org.redisson.api.RBucket; import org.redisson.api.RBucketAsync; import org.redisson.api.RedissonClient; +import org.redisson.client.codec.Codec; import org.redisson.codec.JsonJacksonCodec; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; @@ -52,6 +53,11 @@ public class SaTokenDaoRedissonJackson implements SaTokenDao { */ public ObjectMapper objectMapper; + /** + * 序列化方式 + */ + public Codec codec; + /** * redisson 客户端 */ @@ -98,7 +104,7 @@ public class SaTokenDaoRedissonJackson implements SaTokenDao { } // 开始初始化相关组件 - redissonClient.getConfig().setCodec(new JsonJacksonCodec(objectMapper)); + this.codec = new JsonJacksonCodec(objectMapper); this.redissonClient = redissonClient; this.isInit = true; } @@ -109,7 +115,7 @@ public class SaTokenDaoRedissonJackson implements SaTokenDao { */ @Override public String get(String key) { - RBucket rBucket = redissonClient.getBucket(key); + RBucket rBucket = redissonClient.getBucket(key, codec); return rBucket.get(); } @@ -123,11 +129,11 @@ public class SaTokenDaoRedissonJackson implements SaTokenDao { } // 判断是否为永不过期 if(timeout == SaTokenDao.NEVER_EXPIRE) { - RBucket bucket = redissonClient.getBucket(key); + RBucket bucket = redissonClient.getBucket(key, codec); bucket.set(value); } else { RBatch batch = redissonClient.createBatch(); - RBucketAsync bucket = batch.getBucket(key); + RBucketAsync bucket = batch.getBucket(key, codec); bucket.setAsync(value); bucket.expireAsync(Duration.ofSeconds(timeout)); batch.execute(); @@ -152,7 +158,7 @@ public class SaTokenDaoRedissonJackson implements SaTokenDao { */ @Override public void delete(String key) { - redissonClient.getBucket(key).delete(); + redissonClient.getBucket(key, codec).delete(); } /** @@ -160,7 +166,7 @@ public class SaTokenDaoRedissonJackson implements SaTokenDao { */ @Override public long getTimeout(String key) { - RBucket rBucket = redissonClient.getBucket(key); + RBucket rBucket = redissonClient.getBucket(key, codec); long timeout = rBucket.remainTimeToLive(); return timeout < 0 ? timeout : timeout / 1000; } @@ -181,7 +187,7 @@ public class SaTokenDaoRedissonJackson implements SaTokenDao { } return; } - RBucket rBucket = redissonClient.getBucket(key); + RBucket rBucket = redissonClient.getBucket(key, codec); rBucket.expire(Duration.ofSeconds(timeout)); } @@ -192,7 +198,7 @@ public class SaTokenDaoRedissonJackson implements SaTokenDao { */ @Override public Object getObject(String key) { - RBucket rBucket = redissonClient.getBucket(key); + RBucket rBucket = redissonClient.getBucket(key, codec); return rBucket.get(); } @@ -206,11 +212,11 @@ public class SaTokenDaoRedissonJackson implements SaTokenDao { } // 判断是否为永不过期 if(timeout == SaTokenDao.NEVER_EXPIRE) { - RBucket bucket = redissonClient.getBucket(key); + RBucket bucket = redissonClient.getBucket(key, codec); bucket.set(object); } else { RBatch batch = redissonClient.createBatch(); - RBucketAsync bucket = batch.getBucket(key); + RBucketAsync bucket = batch.getBucket(key, codec); bucket.setAsync(object); bucket.expireAsync(Duration.ofSeconds(timeout)); batch.execute(); @@ -236,7 +242,7 @@ public class SaTokenDaoRedissonJackson implements SaTokenDao { */ @Override public void deleteObject(String key) { - redissonClient.getBucket(key).delete(); + redissonClient.getBucket(key, codec).delete(); } /** @@ -244,7 +250,7 @@ public class SaTokenDaoRedissonJackson implements SaTokenDao { */ @Override public long getObjectTimeout(String key) { - RBucket rBucket = redissonClient.getBucket(key); + RBucket rBucket = redissonClient.getBucket(key, codec); long timeout = rBucket.remainTimeToLive(); return timeout < 0 ? timeout : timeout / 1000; } @@ -265,7 +271,7 @@ public class SaTokenDaoRedissonJackson implements SaTokenDao { } return; } - RBucket rBucket = redissonClient.getBucket(key); + RBucket rBucket = redissonClient.getBucket(key, codec); rBucket.expire(Duration.ofSeconds(timeout)); }