package cn.stylefeng.roses.kernel.security.starter.cache; import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi; import cn.stylefeng.roses.kernel.cache.redis.util.CreateRedisTemplateUtil; import cn.stylefeng.roses.kernel.security.blackwhite.cache.BlackListRedisCache; import cn.stylefeng.roses.kernel.security.blackwhite.cache.WhiteListRedisCache; import cn.stylefeng.roses.kernel.security.captcha.cache.CaptchaRedisCache; import cn.stylefeng.roses.kernel.security.count.cache.CountValidateRedisCache; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; /** * 安全模块,缓存的依赖 * * @author fengshuonan * @date 2022/11/8 9:57 */ @Configuration @ConditionalOnClass(name = "org.springframework.data.redis.connection.RedisConnectionFactory") public class SecurityRedisCacheAutoConfiguration { /** * 验证码相关的缓存,Redis缓存 * * @author fengshuonan * @date 2022/11/8 20:44 */ @Bean("captchaCache") public CacheOperatorApi captchaRedisCache(RedisConnectionFactory redisConnectionFactory) { // 验证码过期时间 120秒 RedisTemplate redisTemplate = CreateRedisTemplateUtil.createString(redisConnectionFactory); return new CaptchaRedisCache(redisTemplate); } /** * 黑名单的缓存,Redis缓存 * * @author fengshuonan * @date 2022/11/8 21:24 */ @Bean("blackListCache") public CacheOperatorApi blackListRedisCache(RedisConnectionFactory redisConnectionFactory) { RedisTemplate redisTemplate = CreateRedisTemplateUtil.createString(redisConnectionFactory); return new BlackListRedisCache(redisTemplate); } /** * 白名单的缓存,Redis缓存 * * @author fengshuonan * @date 2022/11/8 21:24 */ @Bean("whiteListCache") public CacheOperatorApi whiteListRedisCache(RedisConnectionFactory redisConnectionFactory) { RedisTemplate redisTemplate = CreateRedisTemplateUtil.createString(redisConnectionFactory); return new WhiteListRedisCache(redisTemplate); } /** * 计数缓存,Redis缓存 * * @author fengshuonan * @date 2022/11/8 21:24 */ @Bean("countValidateCache") public CacheOperatorApi countValidateRedisCache(RedisConnectionFactory redisConnectionFactory) { RedisTemplate redisTemplate = CreateRedisTemplateUtil.createObject(redisConnectionFactory); return new CountValidateRedisCache(redisTemplate); } }