diff --git a/pom.xml b/pom.xml
index 9dce4b561faf0bfd8c60e589e6c511e605b7f21f..c5adb049d19bbd9b9f60b90f0df66e197c985018 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,9 +38,10 @@
1.38.0
- 1.8
+ 17
utf-8
utf-8
+ UTF-8
@@ -100,23 +101,23 @@
UTF-8
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.10.3
-
-
- attach-javadocs
-
- jar
-
-
- -Xdoclint:none
-
-
-
-
+
+
diff --git a/sa-token-dependencies/pom.xml b/sa-token-dependencies/pom.xml
index 5be7f46f59373e68a9cd6b15cae7e7221e4b2a79..97cd2ceef2468f10b9a13d1c9c140982476a0a2f 100644
--- a/sa-token-dependencies/pom.xml
+++ b/sa-token-dependencies/pom.xml
@@ -26,8 +26,8 @@
2.7.0
1.6.2
3.2.88
- 4.9.17
- 3.14.4
+ 5.1.9
+ 4.1.5
2.5.0
2.7.21
2.10.1.RELEASE
diff --git a/sa-token-starter/sa-token-jboot-plugin/pom.xml b/sa-token-starter/sa-token-jboot-plugin/pom.xml
index 9714a26af6c8ef55d49068fbd1ced97f7a605d2c..cea18e67f74fc5135b9884294d9877caddf24e89 100644
--- a/sa-token-starter/sa-token-jboot-plugin/pom.xml
+++ b/sa-token-starter/sa-token-jboot-plugin/pom.xml
@@ -17,14 +17,18 @@
8
8
- 3.8.0
+ 5.1.3
io.jboot
jboot
- provided
+
+
+ javax.servlet
+ javax.servlet-api
+ 4.0.1
cn.dev33
@@ -38,7 +42,12 @@
redis.clients
jedis
${jedis.version}
- provided
+
+
+ junit
+ junit
+ 4.13.1
+ test
diff --git a/sa-token-starter/sa-token-jboot-plugin/src/main/java/cn/dev33/satoken/jboot/SaRedisCache.java b/sa-token-starter/sa-token-jboot-plugin/src/main/java/cn/dev33/satoken/jboot/SaRedisCache.java
deleted file mode 100644
index 0f1695669a5a7e678c5cd36fd85ded402d1a2f2c..0000000000000000000000000000000000000000
--- a/sa-token-starter/sa-token-jboot-plugin/src/main/java/cn/dev33/satoken/jboot/SaRedisCache.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * Copyright 2020-2099 sa-token.cc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package cn.dev33.satoken.jboot;
-
-import com.jfinal.plugin.ehcache.IDataLoader;
-import io.jboot.components.cache.JbootCache;
-import io.jboot.components.cache.JbootCacheConfig;
-import io.jboot.core.spi.JbootSpi;
-import io.jboot.exception.JbootIllegalConfigException;
-import io.jboot.support.redis.JbootRedisConfig;
-import io.jboot.support.redis.RedisScanResult;
-import io.jboot.utils.StrUtil;
-import redis.clients.jedis.*;
-import redis.clients.jedis.exceptions.JedisConnectionException;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * sa 缓存处理
- */
-@JbootSpi("sacache")
-@SuppressWarnings({"unchecked", "rawtypes"})
-public class SaRedisCache implements JbootCache {
- protected JbootRedisConfig config;
- protected JedisPool jedisPool;
- private final ThreadLocal CACHE_NAME_PREFIX_TL = new ThreadLocal<>();
-
- public SaRedisCache(JbootRedisConfig config) {
- this.config = config;
-
- String host = config.getHost();
- Integer port = config.getPort();
- Integer timeout = config.getTimeout();
- String password = config.getPassword();
- Integer database = config.getDatabase();
- String clientName = config.getClientName();
-
- if (host.contains(":")) {
- port = Integer.valueOf(host.split(":")[1]);
- }
-
-
- JedisPoolConfig poolConfig = new JedisPoolConfig();
-
- if (StrUtil.isNotBlank(config.getTestWhileIdle())) {
- poolConfig.setTestWhileIdle(config.getTestWhileIdle());
- }
-
- if (StrUtil.isNotBlank(config.getTestOnBorrow())) {
- poolConfig.setTestOnBorrow(config.getTestOnBorrow());
- }
-
- if (StrUtil.isNotBlank(config.getTestOnCreate())) {
- poolConfig.setTestOnCreate(config.getTestOnCreate());
- }
-
- if (StrUtil.isNotBlank(config.getTestOnReturn())) {
- poolConfig.setTestOnReturn(config.getTestOnReturn());
- }
-
- if (StrUtil.isNotBlank(config.getMinEvictableIdleTimeMillis())) {
- poolConfig.setMinEvictableIdleTimeMillis(config.getMinEvictableIdleTimeMillis());
- }
-
- if (StrUtil.isNotBlank(config.getTimeBetweenEvictionRunsMillis())) {
- poolConfig.setTimeBetweenEvictionRunsMillis(config.getTimeBetweenEvictionRunsMillis());
- }
-
- if (StrUtil.isNotBlank(config.getNumTestsPerEvictionRun())) {
- poolConfig.setNumTestsPerEvictionRun(config.getNumTestsPerEvictionRun());
- }
-
- if (StrUtil.isNotBlank(config.getMaxTotal())) {
- poolConfig.setMaxTotal(config.getMaxTotal());
- }
-
- if (StrUtil.isNotBlank(config.getMaxIdle())) {
- poolConfig.setMaxIdle(config.getMaxIdle());
- }
-
- if (StrUtil.isNotBlank(config.getMinIdle())) {
- poolConfig.setMinIdle(config.getMinIdle());
- }
-
- if (StrUtil.isNotBlank(config.getMaxWaitMillis())) {
- poolConfig.setMaxWaitMillis(config.getMaxWaitMillis());
- }
-
- this.jedisPool = new JedisPool(poolConfig, host, port, timeout, timeout, password, database, clientName);
- }
-
- public SaRedisCache(JedisPool jedisPool) {
- this.jedisPool = jedisPool;
- }
-
- @Override
- public JbootCache setCurrentCacheNamePrefix(String cacheNamePrefix) {
- if (StrUtil.isNotBlank(cacheNamePrefix)) {
- CACHE_NAME_PREFIX_TL.set(cacheNamePrefix);
- } else {
- CACHE_NAME_PREFIX_TL.remove();
- }
- return this;
- }
-
- @Override
- public void removeCurrentCacheNamePrefix() {
- CACHE_NAME_PREFIX_TL.remove();
- }
-
- @Override
- public JbootCacheConfig getConfig() {
- return null;
- }
-
- @Override
- public T get(String cacheName, Object key) {
- Jedis jedis = getJedis();
- try {
- return (T) (jedis.get(key.toString()));
- } finally {
- returnResource(jedis);
- }
- }
-
- @Override
- public void put(String cacheName, Object key, Object value) {
- Jedis jedis = getJedis();
- try {
- jedis.set(key.toString(), value.toString());
- } finally {
- returnResource(jedis);
- }
- }
-
- @Override
- public void put(String cacheName, Object key, Object value, int liveSeconds) {
- Jedis jedis = getJedis();
- try {
- jedis.setex(key.toString(), Long.parseLong(liveSeconds + ""), value.toString());
- } finally {
- returnResource(jedis);
- }
- }
-
- @Override
- public void remove(String cacheName, Object key) {
- Jedis jedis = getJedis();
- try {
- jedis.del(key.toString());
- } finally {
- returnResource(jedis);
- }
- }
-
- @Override
- public void removeAll(String cacheName) {
-
- }
-
- @Override
- public T get(String cacheName, Object key, IDataLoader dataLoader) {
- return null;
- }
-
- @Override
- public T get(String cacheName, Object key, IDataLoader dataLoader, int liveSeconds) {
- return null;
- }
-
- @Override
- public Integer getTtl(String cacheName, Object key) {
- Jedis jedis = getJedis();
- try {
- return jedis.ttl(key.toString()).intValue();
- } finally {
- returnResource(jedis);
- }
- }
-
- @Override
- public void setTtl(String cacheName, Object key, int seconds) {
- Jedis jedis = getJedis();
- try {
- jedis.expire(key.toString(), Long.parseLong(seconds + ""));
- } finally {
- returnResource(jedis);
- }
- }
-
- @Override
- public void refresh(String cacheName, Object key) {
-
- }
-
- @Override
- public void refresh(String cacheName) {
-
- }
-
- @Override
- public List getNames() {
- return null;
- }
-
- @Override
- public List getKeys(String cacheName) {
- List keys = new ArrayList<>();
- String cursor = "0";
- int scanCount = 1000;
- boolean continueState = true;
- do {
- RedisScanResult redisScanResult = this.scan("*", cursor, scanCount);
- List scanKeys = redisScanResult.getResults();
- cursor = redisScanResult.getCursor();
-
- if (scanKeys != null && scanKeys.size() > 0) {
- for (String key : scanKeys) {
- keys.add(key.substring(3));
- }
- }
-
- if (redisScanResult.isCompleteIteration()) {
- continueState = false;
- }
- } while (continueState);
-
- return keys;
- }
-
- public Jedis getJedis() {
- try {
- return jedisPool.getResource();
- } catch (JedisConnectionException e) {
- throw new JbootIllegalConfigException("can not connect to redis host " + config.getHost() + ":" + config.getPort() + " ," +
- " cause : " + e, e);
- }
- }
-
-
- public void returnResource(Jedis jedis) {
- if (jedis != null) {
- jedis.close();
- }
- }
-
- public RedisScanResult scan(String pattern, String cursor, int scanCount) {
- ScanParams params = new ScanParams();
- params.match(pattern).count(scanCount);
- try (Jedis jedis = getJedis()) {
- ScanResult scanResult = jedis.scan(cursor, params);
- return new RedisScanResult<>(scanResult.getCursor(), scanResult.getResult());
- }
- }
-
-
-}
diff --git a/sa-token-starter/sa-token-jboot-plugin/src/main/java/cn/dev33/satoken/jboot/SaTokenCacheDao.java b/sa-token-starter/sa-token-jboot-plugin/src/main/java/cn/dev33/satoken/jboot/SaTokenCacheDao.java
index ccb658844828a6ace0cc2e7d4d9f1507bda5a5d4..e3e75b951d06a98d658e8ad1a16a2138ea5e33af 100644
--- a/sa-token-starter/sa-token-jboot-plugin/src/main/java/cn/dev33/satoken/jboot/SaTokenCacheDao.java
+++ b/sa-token-starter/sa-token-jboot-plugin/src/main/java/cn/dev33/satoken/jboot/SaTokenCacheDao.java
@@ -22,6 +22,8 @@ import io.jboot.Jboot;
import io.jboot.components.serializer.JbootSerializer;
import io.jboot.exception.JbootIllegalConfigException;
import io.jboot.support.redis.JbootRedisConfig;
+import io.jboot.support.redis.JbootRedisManager;
+import io.jboot.support.redis.jedis.JbootJedisImpl;
import io.jboot.utils.ConfigUtil;
import redis.clients.jedis.Jedis;
@@ -37,17 +39,16 @@ import java.util.concurrent.ConcurrentHashMap;
@SuppressWarnings({"unchecked", "rawtypes"})
public class SaTokenCacheDao implements SaTokenDao {
- protected SaRedisCache saRedisCache;
+ private final Map saRedisMap = new ConcurrentHashMap();
protected JbootSerializer serializer;
-
- private final Map saRedisMap = new ConcurrentHashMap();
+ protected JbootJedisImpl saRedisCache;
/**
* 使用默认redis配置
*/
public SaTokenCacheDao() {
JbootRedisConfig config = Jboot.config(JbootRedisConfig.class);
- this.saRedisCache = new SaRedisCache(config);
+ this.saRedisCache = (JbootJedisImpl) JbootRedisManager.me().getRedis(config);
this.serializer = new SaJdkSerializer();
}
@@ -57,7 +58,7 @@ public class SaTokenCacheDao implements SaTokenDao {
* @param cacheName 使用的缓存配置名,默认为 default
*/
public SaTokenCacheDao(String cacheName) {
- SaRedisCache saCache = this.saRedisMap.get(cacheName);
+ JbootJedisImpl saCache = this.saRedisMap.get(cacheName);
if (saCache == null) {
synchronized (this) {
saCache = this.saRedisMap.get(cacheName);
@@ -68,7 +69,7 @@ public class SaTokenCacheDao implements SaTokenDao {
}
JbootRedisConfig jbootRedisConfig = configModels.get(cacheName);
- saCache = new SaRedisCache(jbootRedisConfig);
+ saCache = (JbootJedisImpl) JbootRedisManager.me().getRedis(jbootRedisConfig);
this.saRedisMap.put(cacheName, saCache);
}
}
diff --git a/sa-token-starter/sa-token-jfinal-plugin/pom.xml b/sa-token-starter/sa-token-jfinal-plugin/pom.xml
index 00604d282c55b3672d71d60cd5250a550bb53fed..2f667361d171f87dbf19106d970a662d8f5dceb0 100644
--- a/sa-token-starter/sa-token-jfinal-plugin/pom.xml
+++ b/sa-token-starter/sa-token-jfinal-plugin/pom.xml
@@ -17,17 +17,20 @@
8
8
+ 5.1.3
org.slf4j
slf4j-api
1.7.24
+ provided
com.jfinal
jfinal-undertow
2.8
+ provided
com.jfinal
@@ -50,7 +53,8 @@
redis.clients
jedis
- 3.7.0
+ ${jedis.version}
+ provided
slf4j-api