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