From 91047531243d7f5bc7e295304822e162dc8c97b7 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Tue, 8 Nov 2022 21:22:21 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.3.2=E3=80=91=E3=80=90cache=E3=80=91?= =?UTF-8?q?=E6=95=B4=E7=90=86=E9=AA=8C=E8=AF=81=E7=A0=81=E7=9A=84=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../starter/CaptchaAutoConfiguration.java | 4 ++- .../SecurityMemoryCacheAutoConfiguration.java | 35 +++++++++++++++++++ .../SecurityRedisCacheAutoConfiguration.java} | 24 ++----------- .../main/resources/META-INF/spring.factories | 3 +- 4 files changed, 43 insertions(+), 23 deletions(-) create mode 100644 kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/cache/SecurityMemoryCacheAutoConfiguration.java rename kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/{SecurityCacheAutoConfiguration.java => cache/SecurityRedisCacheAutoConfiguration.java} (55%) diff --git a/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/CaptchaAutoConfiguration.java b/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/CaptchaAutoConfiguration.java index 33f60110b..953d8f01f 100644 --- a/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/CaptchaAutoConfiguration.java +++ b/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/CaptchaAutoConfiguration.java @@ -29,6 +29,8 @@ import cn.stylefeng.roses.kernel.security.api.DragCaptchaApi; import cn.stylefeng.roses.kernel.security.api.ImageCaptchaApi; import cn.stylefeng.roses.kernel.security.captcha.DragCaptchaService; import cn.stylefeng.roses.kernel.security.captcha.ImageCaptchaService; +import cn.stylefeng.roses.kernel.security.starter.cache.SecurityMemoryCacheAutoConfiguration; +import cn.stylefeng.roses.kernel.security.starter.cache.SecurityRedisCacheAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; @@ -43,7 +45,7 @@ import javax.annotation.Resource; * @date 2020/12/1 21:44 */ @Configuration -@AutoConfigureAfter(SecurityCacheAutoConfiguration.class) +@AutoConfigureAfter({SecurityMemoryCacheAutoConfiguration.class, SecurityRedisCacheAutoConfiguration.class}) public class CaptchaAutoConfiguration { @Resource(name = "captchaCache") diff --git a/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/cache/SecurityMemoryCacheAutoConfiguration.java b/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/cache/SecurityMemoryCacheAutoConfiguration.java new file mode 100644 index 000000000..23714a28b --- /dev/null +++ b/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/cache/SecurityMemoryCacheAutoConfiguration.java @@ -0,0 +1,35 @@ +package cn.stylefeng.roses.kernel.security.starter.cache; + + +import cn.hutool.cache.CacheUtil; +import cn.hutool.cache.impl.TimedCache; +import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi; +import cn.stylefeng.roses.kernel.security.captcha.cache.CaptchaMemoryCache; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 安全模块,缓存的依赖 + * + * @author fengshuonan + * @date 2022/11/8 9:57 + */ +@Configuration +@ConditionalOnMissingClass("org.springframework.data.redis.connection.RedisConnectionFactory") +public class SecurityMemoryCacheAutoConfiguration { + + /** + * 验证码相关的缓存,内存缓存 + * + * @author fengshuonan + * @date 2022/11/8 20:44 + */ + @Bean("captchaCache") + public CacheOperatorApi captchaMemoryCache() { + // 验证码过期时间 120秒 + TimedCache timedCache = CacheUtil.newTimedCache(1000 * 120); + return new CaptchaMemoryCache(timedCache); + } + +} diff --git a/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/SecurityCacheAutoConfiguration.java b/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/cache/SecurityRedisCacheAutoConfiguration.java similarity index 55% rename from kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/SecurityCacheAutoConfiguration.java rename to kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/cache/SecurityRedisCacheAutoConfiguration.java index 7fee7b985..6ca8c5011 100644 --- a/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/SecurityCacheAutoConfiguration.java +++ b/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/cache/SecurityRedisCacheAutoConfiguration.java @@ -1,14 +1,10 @@ -package cn.stylefeng.roses.kernel.security.starter; +package cn.stylefeng.roses.kernel.security.starter.cache; -import cn.hutool.cache.CacheUtil; -import cn.hutool.cache.impl.TimedCache; import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi; import cn.stylefeng.roses.kernel.cache.redis.util.CreateRedisTemplateUtil; -import cn.stylefeng.roses.kernel.security.captcha.cache.CaptchaMemoryCache; import cn.stylefeng.roses.kernel.security.captcha.cache.CaptchaRedisCache; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; @@ -21,21 +17,8 @@ import org.springframework.data.redis.core.RedisTemplate; * @date 2022/11/8 9:57 */ @Configuration -public class SecurityCacheAutoConfiguration { - - /** - * 验证码相关的缓存,内存缓存 - * - * @author fengshuonan - * @date 2022/11/8 20:44 - */ - @Bean("captchaCache") - @ConditionalOnMissingClass("org.springframework.data.redis.core.RedisTemplate") - public CacheOperatorApi captchaMemoryCache() { - // 验证码过期时间 120秒 - TimedCache timedCache = CacheUtil.newTimedCache(1000 * 120); - return new CaptchaMemoryCache(timedCache); - } +@ConditionalOnClass(name = "org.springframework.data.redis.connection.RedisConnectionFactory") +public class SecurityRedisCacheAutoConfiguration { /** * 验证码相关的缓存,Redis缓存 @@ -44,7 +27,6 @@ public class SecurityCacheAutoConfiguration { * @date 2022/11/8 20:44 */ @Bean("captchaCache") - @ConditionalOnClass(name = "org.springframework.data.redis.core.RedisTemplate") public CacheOperatorApi captchaRedisCache(RedisConnectionFactory redisConnectionFactory) { // 验证码过期时间 120秒 RedisTemplate redisTemplate = CreateRedisTemplateUtil.createString(redisConnectionFactory); diff --git a/kernel-d-security/security-spring-boot-starter/src/main/resources/META-INF/spring.factories b/kernel-d-security/security-spring-boot-starter/src/main/resources/META-INF/spring.factories index 429baf5e1..1eb4fa35f 100644 --- a/kernel-d-security/security-spring-boot-starter/src/main/resources/META-INF/spring.factories +++ b/kernel-d-security/security-spring-boot-starter/src/main/resources/META-INF/spring.factories @@ -3,4 +3,5 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ cn.stylefeng.roses.kernel.security.starter.GunsXssAutoConfiguration,\ cn.stylefeng.roses.kernel.security.starter.CounterAutoConfiguration,\ cn.stylefeng.roses.kernel.security.starter.CaptchaAutoConfiguration,\ - cn.stylefeng.roses.kernel.security.starter.SecurityCacheAutoConfiguration + cn.stylefeng.roses.kernel.security.starter.cache.SecurityMemoryCacheAutoConfiguration,\ + cn.stylefeng.roses.kernel.security.starter.cache.SecurityRedisCacheAutoConfiguration