From e21197ce7030a7500c9bc69d75628ce9e1db36b2 Mon Sep 17 00:00:00 2001 From: stylefeng Date: Wed, 10 Jul 2024 18:22:43 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.1.9=E3=80=91=E3=80=90security?= =?UTF-8?q?=E3=80=91=E6=9B=B4=E6=96=B0=E9=BB=91=E7=99=BD=E5=90=8D=E5=8D=95?= =?UTF-8?q?=E7=9A=84=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel-d-security/pom.xml | 7 +- .../security-sdk-black-white/README.md | 1 + .../security-sdk-black-white/pom.xml | 51 ++++++++++++++ .../security/blackwhite/BlackListService.java | 70 +++++++++++++++++++ .../security/blackwhite/WhiteListService.java | 70 +++++++++++++++++++ .../cache/BlackListMemoryCache.java | 48 +++++++++++++ .../blackwhite/cache/BlackListRedisCache.java | 49 +++++++++++++ .../cache/WhiteListMemoryCache.java | 48 +++++++++++++ .../blackwhite/cache/WhiteListRedisCache.java | 49 +++++++++++++ .../security-spring-boot-starter/pom.xml | 7 ++ .../SecurityMemoryCacheAutoConfiguration.java | 26 +++++++ .../SecurityRedisCacheAutoConfiguration.java | 26 +++++++ 12 files changed, 449 insertions(+), 3 deletions(-) create mode 100644 kernel-d-security/security-sdk-black-white/README.md create mode 100644 kernel-d-security/security-sdk-black-white/pom.xml create mode 100644 kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/BlackListService.java create mode 100644 kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/WhiteListService.java create mode 100644 kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/BlackListMemoryCache.java create mode 100644 kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/BlackListRedisCache.java create mode 100644 kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/WhiteListMemoryCache.java create mode 100644 kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/WhiteListRedisCache.java diff --git a/kernel-d-security/pom.xml b/kernel-d-security/pom.xml index c20e06b3e..1b8879693 100644 --- a/kernel-d-security/pom.xml +++ b/kernel-d-security/pom.xml @@ -17,14 +17,15 @@ security-api + security-sdk-allow-cors + security-sdk-black-white security-sdk-captcha security-sdk-clear-threadlocal - security-sdk-allow-cors security-sdk-count - security-sdk-xss - security-sdk-request-encrypt-and-decode security-sdk-database-field security-sdk-guomi + security-sdk-request-encrypt-and-decode + security-sdk-xss security-spring-boot-starter diff --git a/kernel-d-security/security-sdk-black-white/README.md b/kernel-d-security/security-sdk-black-white/README.md new file mode 100644 index 000000000..c303d92a1 --- /dev/null +++ b/kernel-d-security/security-sdk-black-white/README.md @@ -0,0 +1 @@ +黑白名单的校验模块 \ No newline at end of file diff --git a/kernel-d-security/security-sdk-black-white/pom.xml b/kernel-d-security/security-sdk-black-white/pom.xml new file mode 100644 index 000000000..8aa2bd383 --- /dev/null +++ b/kernel-d-security/security-sdk-black-white/pom.xml @@ -0,0 +1,51 @@ + + + 4.0.0 + + + com.javaguns.roses + kernel-d-security + 8.1.9 + ../pom.xml + + + security-sdk-black-white + + + + + + com.javaguns.roses + security-api + ${roses.version} + + + + + com.javaguns.roses + cache-api + ${roses.version} + + + com.javaguns.roses + cache-sdk-memory + ${roses.version} + true + + + com.javaguns.roses + cache-sdk-redis + ${roses.version} + true + + + + + org.springframework.boot + spring-boot-starter-web + + + + diff --git a/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/BlackListService.java b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/BlackListService.java new file mode 100644 index 000000000..b5916485d --- /dev/null +++ b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/BlackListService.java @@ -0,0 +1,70 @@ +/* + * Copyright [2020-2030] [https://www.stylefeng.cn] + * + * 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. + * + * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Guns源码头部的版权声明。 + * 3.请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns + * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns + * 6.若您的项目无法满足以上几点,可申请商业授权 + */ +package cn.stylefeng.roses.kernel.security.blackwhite; + +import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi; +import cn.stylefeng.roses.kernel.security.api.BlackListApi; +import org.springframework.stereotype.Service; + +import java.util.Collection; + +/** + * 黑名单的实现 + *

+ * 黑名单的数据会在访问资源时被限制 + * + * @author fengshuonan + * @date 2020/11/20 15:52 + */ +@Service +public class BlackListService implements BlackListApi { + + private final CacheOperatorApi cacheOperatorApi; + + public BlackListService(CacheOperatorApi cacheOperatorApi) { + this.cacheOperatorApi = cacheOperatorApi; + } + + @Override + public void addBlackItem(String content) { + cacheOperatorApi.put(content, content); + } + + @Override + public void removeBlackItem(String content) { + cacheOperatorApi.remove(content); + } + + @Override + public Collection getBlackList() { + return cacheOperatorApi.getAllKeys(); + } + + @Override + public boolean contains(String content) { + return cacheOperatorApi.contains(content); + } + +} diff --git a/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/WhiteListService.java b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/WhiteListService.java new file mode 100644 index 000000000..08461370f --- /dev/null +++ b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/WhiteListService.java @@ -0,0 +1,70 @@ +/* + * Copyright [2020-2030] [https://www.stylefeng.cn] + * + * 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. + * + * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Guns源码头部的版权声明。 + * 3.请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns + * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns + * 6.若您的项目无法满足以上几点,可申请商业授权 + */ +package cn.stylefeng.roses.kernel.security.blackwhite; + +import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi; +import cn.stylefeng.roses.kernel.security.api.WhiteListApi; +import org.springframework.stereotype.Service; + +import java.util.Collection; + +/** + * 白名单的实现 + *

+ * 白名单的数据在访问资源时不受限 + * + * @author fengshuonan + * @date 2020/11/20 15:53 + */ +@Service +public class WhiteListService implements WhiteListApi { + + private final CacheOperatorApi cacheOperatorApi; + + public WhiteListService(CacheOperatorApi cacheOperatorApi) { + this.cacheOperatorApi = cacheOperatorApi; + } + + @Override + public void addWhiteItem(String content) { + cacheOperatorApi.put(content, content); + } + + @Override + public void removeWhiteItem(String content) { + cacheOperatorApi.remove(content); + } + + @Override + public Collection getWhiteList() { + return cacheOperatorApi.getAllKeys(); + } + + @Override + public boolean contains(String content) { + return cacheOperatorApi.contains(content); + } + +} diff --git a/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/BlackListMemoryCache.java b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/BlackListMemoryCache.java new file mode 100644 index 000000000..7386f24da --- /dev/null +++ b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/BlackListMemoryCache.java @@ -0,0 +1,48 @@ +/* + * Copyright [2020-2030] [https://www.stylefeng.cn] + * + * 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. + * + * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Guns源码头部的版权声明。 + * 3.请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns + * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns + * 6.若您的项目无法满足以上几点,可申请商业授权 + */ +package cn.stylefeng.roses.kernel.security.blackwhite.cache; + +import cn.hutool.cache.impl.TimedCache; +import cn.stylefeng.roses.kernel.cache.memory.AbstractMemoryCacheOperator; +import cn.stylefeng.roses.kernel.security.api.constants.CounterConstants; + +/** + * 黑名单用户的缓存 + * + * @author fengshuonan + * @date 2020/11/20 15:50 + */ +public class BlackListMemoryCache extends AbstractMemoryCacheOperator { + + public BlackListMemoryCache(TimedCache timedCache) { + super(timedCache); + } + + @Override + public String getCommonKeyPrefix() { + return CounterConstants.BLACK_LIST_CACHE_KEY_PREFIX; + } + +} diff --git a/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/BlackListRedisCache.java b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/BlackListRedisCache.java new file mode 100644 index 000000000..4ceb60905 --- /dev/null +++ b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/BlackListRedisCache.java @@ -0,0 +1,49 @@ +/* + * Copyright [2020-2030] [https://www.stylefeng.cn] + * + * 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. + * + * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Guns源码头部的版权声明。 + * 3.请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns + * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns + * 6.若您的项目无法满足以上几点,可申请商业授权 + */ +package cn.stylefeng.roses.kernel.security.blackwhite.cache; + +import cn.stylefeng.roses.kernel.cache.redis.AbstractRedisCacheOperator; +import cn.stylefeng.roses.kernel.security.api.constants.CounterConstants; +import org.springframework.data.redis.core.RedisTemplate; + + +/** + * 黑名单用户的缓存 + * + * @author fengshuonan + * @date 2020/11/20 15:50 + */ +public class BlackListRedisCache extends AbstractRedisCacheOperator { + + public BlackListRedisCache(RedisTemplate redisTemplate) { + super(redisTemplate); + } + + @Override + public String getCommonKeyPrefix() { + return CounterConstants.BLACK_LIST_CACHE_KEY_PREFIX; + } + +} diff --git a/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/WhiteListMemoryCache.java b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/WhiteListMemoryCache.java new file mode 100644 index 000000000..0e974e80e --- /dev/null +++ b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/WhiteListMemoryCache.java @@ -0,0 +1,48 @@ +/* + * Copyright [2020-2030] [https://www.stylefeng.cn] + * + * 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. + * + * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Guns源码头部的版权声明。 + * 3.请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns + * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns + * 6.若您的项目无法满足以上几点,可申请商业授权 + */ +package cn.stylefeng.roses.kernel.security.blackwhite.cache; + +import cn.hutool.cache.impl.TimedCache; +import cn.stylefeng.roses.kernel.cache.memory.AbstractMemoryCacheOperator; +import cn.stylefeng.roses.kernel.security.api.constants.CounterConstants; + +/** + * 白名单的缓存 + * + * @author fengshuonan + * @date 2020/11/15 15:26 + */ +public class WhiteListMemoryCache extends AbstractMemoryCacheOperator { + + public WhiteListMemoryCache(TimedCache timedCache) { + super(timedCache); + } + + @Override + public String getCommonKeyPrefix() { + return CounterConstants.WHITE_LIST_CACHE_KEY_PREFIX; + } + +} diff --git a/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/WhiteListRedisCache.java b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/WhiteListRedisCache.java new file mode 100644 index 000000000..a7e0e22ac --- /dev/null +++ b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/cache/WhiteListRedisCache.java @@ -0,0 +1,49 @@ +/* + * Copyright [2020-2030] [https://www.stylefeng.cn] + * + * 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. + * + * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Guns源码头部的版权声明。 + * 3.请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns + * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns + * 6.若您的项目无法满足以上几点,可申请商业授权 + */ +package cn.stylefeng.roses.kernel.security.blackwhite.cache; + +import cn.stylefeng.roses.kernel.cache.redis.AbstractRedisCacheOperator; +import cn.stylefeng.roses.kernel.security.api.constants.CounterConstants; +import org.springframework.data.redis.core.RedisTemplate; + + +/** + * 白名单的缓存 + * + * @author fengshuonan + * @date 2020/11/15 15:26 + */ +public class WhiteListRedisCache extends AbstractRedisCacheOperator { + + public WhiteListRedisCache(RedisTemplate redisTemplate) { + super(redisTemplate); + } + + @Override + public String getCommonKeyPrefix() { + return CounterConstants.WHITE_LIST_CACHE_KEY_PREFIX; + } + +} diff --git a/kernel-d-security/security-spring-boot-starter/pom.xml b/kernel-d-security/security-spring-boot-starter/pom.xml index bddbe2b4a..883219a3a 100644 --- a/kernel-d-security/security-spring-boot-starter/pom.xml +++ b/kernel-d-security/security-spring-boot-starter/pom.xml @@ -59,6 +59,13 @@ ${roses.version} + + + com.javaguns.roses + security-sdk-black-white + ${roses.version} + + com.javaguns.roses 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 index d645ab3a6..db0b9ada6 100644 --- 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 @@ -6,6 +6,8 @@ import cn.hutool.cache.impl.TimedCache; import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi; import cn.stylefeng.roses.kernel.cache.api.constants.CacheConstants; import cn.stylefeng.roses.kernel.security.api.constants.CaptchaConstants; +import cn.stylefeng.roses.kernel.security.blackwhite.cache.BlackListMemoryCache; +import cn.stylefeng.roses.kernel.security.blackwhite.cache.WhiteListMemoryCache; import cn.stylefeng.roses.kernel.security.captcha.cache.CaptchaMemoryCache; import cn.stylefeng.roses.kernel.security.count.cache.CountValidateMemoryCache; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; @@ -47,4 +49,28 @@ public class SecurityMemoryCacheAutoConfiguration { return new CountValidateMemoryCache(timedCache); } + /** + * 黑名单的缓存 + * + * @author fengshuonan + * @since 2024/7/10 18:20 + */ + @Bean("blackListCache") + public CacheOperatorApi blackListMemoryCache() { + TimedCache timedCache = CacheUtil.newTimedCache(CacheConstants.NONE_EXPIRED_TIME); + return new BlackListMemoryCache(timedCache); + } + + /** + * 白名单的缓存 + * + * @author fengshuonan + * @since 2024/7/10 18:20 + */ + @Bean("whiteListCache") + public CacheOperatorApi whiteListMemoryCache() { + TimedCache timedCache = CacheUtil.newTimedCache(CacheConstants.NONE_EXPIRED_TIME); + return new WhiteListMemoryCache(timedCache); + } + } diff --git a/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/cache/SecurityRedisCacheAutoConfiguration.java b/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/cache/SecurityRedisCacheAutoConfiguration.java index ba41bd8e6..5a8e4acc7 100644 --- a/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/cache/SecurityRedisCacheAutoConfiguration.java +++ b/kernel-d-security/security-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/security/starter/cache/SecurityRedisCacheAutoConfiguration.java @@ -3,6 +3,8 @@ 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; @@ -46,4 +48,28 @@ public class SecurityRedisCacheAutoConfiguration { return new CountValidateRedisCache(redisTemplate); } + /** + * 黑名单的缓存,Redis缓存 + * + * @author fengshuonan + * @since 2024/7/10 18:19 + */ + @Bean("blackListCache") + public CacheOperatorApi blackListRedisCache(RedisConnectionFactory redisConnectionFactory) { + RedisTemplate redisTemplate = CreateRedisTemplateUtil.createString(redisConnectionFactory); + return new BlackListRedisCache(redisTemplate); + } + + /** + * 白名单的缓存,Redis缓存 + * + * @author fengshuonan + * @since 2024/7/10 18:19 + */ + @Bean("whiteListCache") + public CacheOperatorApi whiteListRedisCache(RedisConnectionFactory redisConnectionFactory) { + RedisTemplate redisTemplate = CreateRedisTemplateUtil.createString(redisConnectionFactory); + return new WhiteListRedisCache(redisTemplate); + } + }