From 241c256ff1ba033d2c1d4f958534956ee37cd57a Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 10 七月 2026 10:31:46 +0800
Subject: [PATCH] fix: redis数据隔离
---
src/main/java/com/ruoyi/framework/security/service/SysRegisterService.java | 2
src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java | 2
src/main/java/com/ruoyi/framework/config/RedisKeyConfig.java | 19 +++++++++
src/main/java/com/ruoyi/framework/security/service/TokenService.java | 2
src/main/java/com/ruoyi/project/monitor/controller/SysUserOnlineController.java | 4 +-
src/main/java/com/ruoyi/project/monitor/controller/CacheController.java | 14 +++---
src/main/java/com/ruoyi/common/constant/CacheConstants.java | 19 +++++++++
src/main/java/com/ruoyi/common/utils/DictUtils.java | 4 +-
src/main/java/com/ruoyi/framework/security/service/SysLoginService.java | 2
src/main/java/com/ruoyi/project/system/service/impl/SysConfigServiceImpl.java | 4 +-
src/main/java/com/ruoyi/framework/security/service/SysPasswordService.java | 2
src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java | 3 +
src/main/resources/application.yml | 3 +
src/main/java/com/ruoyi/project/common/CaptchaController.java | 2
14 files changed, 62 insertions(+), 20 deletions(-)
diff --git a/src/main/java/com/ruoyi/common/constant/CacheConstants.java b/src/main/java/com/ruoyi/common/constant/CacheConstants.java
index c89692c..d81aa59 100644
--- a/src/main/java/com/ruoyi/common/constant/CacheConstants.java
+++ b/src/main/java/com/ruoyi/common/constant/CacheConstants.java
@@ -8,6 +8,25 @@
public class CacheConstants
{
/**
+ * Redis key 鏈�涓婂眰鍓嶇紑锛堟寜椤圭洰闅旂锛屽彇 spring.profiles.active 鐨勫�硷級
+ * 鐢� com.ruoyi.framework.config.RedisKeyConfig 鍦ㄥ惎鍔ㄦ椂娉ㄥ叆锛�
+ * 鍙栦笉鍒版椂涓虹┖涓诧紝绛変环浜庝笉鍔犲墠缂�锛岃涓洪��鍥炲師鐘朵綔涓哄厹搴曘��
+ */
+ public static String PREFIX = "";
+
+ public static void setPrefix(String prefix)
+ {
+ if (prefix == null || prefix.isEmpty())
+ {
+ PREFIX = "";
+ }
+ else
+ {
+ PREFIX = prefix + ":";
+ }
+ }
+
+ /**
* 鐧诲綍鐢ㄦ埛 redis key
*/
public static final String LOGIN_TOKEN_KEY = "login_tokens:";
diff --git a/src/main/java/com/ruoyi/common/utils/DictUtils.java b/src/main/java/com/ruoyi/common/utils/DictUtils.java
index 2803b93..621f242 100644
--- a/src/main/java/com/ruoyi/common/utils/DictUtils.java
+++ b/src/main/java/com/ruoyi/common/utils/DictUtils.java
@@ -222,7 +222,7 @@
*/
public static void clearDictCache()
{
- Collection<String> keys = SpringUtils.getBean(RedisCache.class).keys(CacheConstants.SYS_DICT_KEY + "*");
+ Collection<String> keys = SpringUtils.getBean(RedisCache.class).keys(CacheConstants.PREFIX + CacheConstants.SYS_DICT_KEY + "*");
SpringUtils.getBean(RedisCache.class).deleteObject(keys);
}
@@ -234,6 +234,6 @@
*/
public static String getCacheKey(String configKey)
{
- return CacheConstants.SYS_DICT_KEY + configKey;
+ return CacheConstants.PREFIX + CacheConstants.SYS_DICT_KEY + configKey;
}
}
diff --git a/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java b/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java
index 278bcc4..a1f76fe 100644
--- a/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java
+++ b/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java
@@ -13,6 +13,7 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.script.RedisScript;
import org.springframework.stereotype.Component;
+import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.ip.IpUtils;
@@ -75,7 +76,7 @@
public String getCombineKey(RateLimiter rateLimiter, JoinPoint point)
{
- StringBuffer stringBuffer = new StringBuffer(rateLimiter.key());
+ StringBuffer stringBuffer = new StringBuffer(CacheConstants.PREFIX).append(rateLimiter.key());
if (rateLimiter.limitType() == LimitType.IP)
{
stringBuffer.append(IpUtils.getIpAddr()).append("-");
diff --git a/src/main/java/com/ruoyi/framework/config/RedisKeyConfig.java b/src/main/java/com/ruoyi/framework/config/RedisKeyConfig.java
new file mode 100644
index 0000000..1a992b5
--- /dev/null
+++ b/src/main/java/com/ruoyi/framework/config/RedisKeyConfig.java
@@ -0,0 +1,19 @@
+package com.ruoyi.framework.config;
+
+import com.ruoyi.common.constant.CacheConstants;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+import javax.annotation.PostConstruct;
+
+@Configuration
+public class RedisKeyConfig {
+
+ @Value("${ruoyi.redis.keyPrefix:}")
+ private String keyPrefix;
+
+ @PostConstruct
+ public void init() {
+ CacheConstants.setPrefix(keyPrefix == null ? "" : keyPrefix.trim());
+ }
+}
diff --git a/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java b/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java
index ef335f3..dc7762b 100644
--- a/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java
+++ b/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java
@@ -63,7 +63,7 @@
String submitKey = StringUtils.trimToEmpty(request.getHeader(header));
// 鍞竴鏍囪瘑锛堟寚瀹歬ey + url + 娑堟伅澶达級
- String cacheRepeatKey = CacheConstants.REPEAT_SUBMIT_KEY + url + submitKey;
+ String cacheRepeatKey = CacheConstants.PREFIX + CacheConstants.REPEAT_SUBMIT_KEY + url + submitKey;
Object sessionObj = redisCache.getCacheObject(cacheRepeatKey);
if (sessionObj != null)
diff --git a/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java b/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java
index 6a7874a..d0286a5 100644
--- a/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java
+++ b/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java
@@ -121,7 +121,7 @@
boolean captchaEnabled = configService.selectCaptchaEnabled();
if (captchaEnabled)
{
- String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, "");
+ String verifyKey = CacheConstants.PREFIX + CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, "");
String captcha = redisCache.getCacheObject(verifyKey);
if (captcha == null)
{
diff --git a/src/main/java/com/ruoyi/framework/security/service/SysPasswordService.java b/src/main/java/com/ruoyi/framework/security/service/SysPasswordService.java
index 97c3518..186c77a 100644
--- a/src/main/java/com/ruoyi/framework/security/service/SysPasswordService.java
+++ b/src/main/java/com/ruoyi/framework/security/service/SysPasswordService.java
@@ -38,7 +38,7 @@
*/
private String getCacheKey(String username)
{
- return CacheConstants.PWD_ERR_CNT_KEY + username;
+ return CacheConstants.PREFIX + CacheConstants.PWD_ERR_CNT_KEY + username;
}
public void validate(SysUser user)
diff --git a/src/main/java/com/ruoyi/framework/security/service/SysRegisterService.java b/src/main/java/com/ruoyi/framework/security/service/SysRegisterService.java
index 17274eb..e4f2da4 100644
--- a/src/main/java/com/ruoyi/framework/security/service/SysRegisterService.java
+++ b/src/main/java/com/ruoyi/framework/security/service/SysRegisterService.java
@@ -100,7 +100,7 @@
*/
public void validateCaptcha(String username, String code, String uuid)
{
- String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, "");
+ String verifyKey = CacheConstants.PREFIX + CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, "");
String captcha = redisCache.getCacheObject(verifyKey);
redisCache.deleteObject(verifyKey);
if (captcha == null)
diff --git a/src/main/java/com/ruoyi/framework/security/service/TokenService.java b/src/main/java/com/ruoyi/framework/security/service/TokenService.java
index 7d09431..8e00ed5 100644
--- a/src/main/java/com/ruoyi/framework/security/service/TokenService.java
+++ b/src/main/java/com/ruoyi/framework/security/service/TokenService.java
@@ -249,6 +249,6 @@
private String getTokenKey(String uuid)
{
- return CacheConstants.LOGIN_TOKEN_KEY + uuid;
+ return CacheConstants.PREFIX + CacheConstants.LOGIN_TOKEN_KEY + uuid;
}
}
diff --git a/src/main/java/com/ruoyi/project/common/CaptchaController.java b/src/main/java/com/ruoyi/project/common/CaptchaController.java
index 13dd70f..e284b33 100644
--- a/src/main/java/com/ruoyi/project/common/CaptchaController.java
+++ b/src/main/java/com/ruoyi/project/common/CaptchaController.java
@@ -60,7 +60,7 @@
// 淇濆瓨楠岃瘉鐮佷俊鎭�
String uuid = IdUtils.simpleUUID();
- String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;
+ String verifyKey = CacheConstants.PREFIX + CacheConstants.CAPTCHA_CODE_KEY + uuid;
String capStr = null, code = null;
BufferedImage image = null;
diff --git a/src/main/java/com/ruoyi/project/monitor/controller/CacheController.java b/src/main/java/com/ruoyi/project/monitor/controller/CacheController.java
index 748f1b8..2e95372 100644
--- a/src/main/java/com/ruoyi/project/monitor/controller/CacheController.java
+++ b/src/main/java/com/ruoyi/project/monitor/controller/CacheController.java
@@ -36,13 +36,13 @@
private final static List<SysCache> caches = new ArrayList<SysCache>();
{
- caches.add(new SysCache(CacheConstants.LOGIN_TOKEN_KEY, "鐢ㄦ埛淇℃伅"));
- caches.add(new SysCache(CacheConstants.SYS_CONFIG_KEY, "閰嶇疆淇℃伅"));
- caches.add(new SysCache(CacheConstants.SYS_DICT_KEY, "鏁版嵁瀛楀吀"));
- caches.add(new SysCache(CacheConstants.CAPTCHA_CODE_KEY, "楠岃瘉鐮�"));
- caches.add(new SysCache(CacheConstants.REPEAT_SUBMIT_KEY, "闃查噸鎻愪氦"));
- caches.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "闄愭祦澶勭悊"));
- caches.add(new SysCache(CacheConstants.PWD_ERR_CNT_KEY, "瀵嗙爜閿欒娆℃暟"));
+ caches.add(new SysCache(CacheConstants.PREFIX + CacheConstants.LOGIN_TOKEN_KEY, "鐢ㄦ埛淇℃伅"));
+ caches.add(new SysCache(CacheConstants.PREFIX + CacheConstants.SYS_CONFIG_KEY, "閰嶇疆淇℃伅"));
+ caches.add(new SysCache(CacheConstants.PREFIX + CacheConstants.SYS_DICT_KEY, "鏁版嵁瀛楀吀"));
+ caches.add(new SysCache(CacheConstants.PREFIX + CacheConstants.CAPTCHA_CODE_KEY, "楠岃瘉鐮�"));
+ caches.add(new SysCache(CacheConstants.PREFIX + CacheConstants.REPEAT_SUBMIT_KEY, "闃查噸鎻愪氦"));
+ caches.add(new SysCache(CacheConstants.PREFIX + CacheConstants.RATE_LIMIT_KEY, "闄愭祦澶勭悊"));
+ caches.add(new SysCache(CacheConstants.PREFIX + CacheConstants.PWD_ERR_CNT_KEY, "瀵嗙爜閿欒娆℃暟"));
}
@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
diff --git a/src/main/java/com/ruoyi/project/monitor/controller/SysUserOnlineController.java b/src/main/java/com/ruoyi/project/monitor/controller/SysUserOnlineController.java
index 763c141..b8f650f 100644
--- a/src/main/java/com/ruoyi/project/monitor/controller/SysUserOnlineController.java
+++ b/src/main/java/com/ruoyi/project/monitor/controller/SysUserOnlineController.java
@@ -42,7 +42,7 @@
@GetMapping("/list")
public TableDataInfo list(String ipaddr, String userName)
{
- Collection<String> keys = redisCache.keys(CacheConstants.LOGIN_TOKEN_KEY + "*");
+ Collection<String> keys = redisCache.keys(CacheConstants.PREFIX + CacheConstants.LOGIN_TOKEN_KEY + "*");
List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
for (String key : keys)
{
@@ -77,7 +77,7 @@
@DeleteMapping("/{tokenId}")
public AjaxResult forceLogout(@PathVariable String tokenId)
{
- redisCache.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + tokenId);
+ redisCache.deleteObject(CacheConstants.PREFIX + CacheConstants.LOGIN_TOKEN_KEY + tokenId);
return success();
}
}
diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysConfigServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysConfigServiceImpl.java
index 0396057..26c0cfb 100644
--- a/src/main/java/com/ruoyi/project/system/service/impl/SysConfigServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/system/service/impl/SysConfigServiceImpl.java
@@ -184,7 +184,7 @@
@Override
public void clearConfigCache()
{
- Collection<String> keys = redisCache.keys(CacheConstants.SYS_CONFIG_KEY + "*");
+ Collection<String> keys = redisCache.keys(CacheConstants.PREFIX + CacheConstants.SYS_CONFIG_KEY + "*");
redisCache.deleteObject(keys);
}
@@ -224,6 +224,6 @@
*/
private String getCacheKey(String configKey)
{
- return CacheConstants.SYS_CONFIG_KEY + configKey;
+ return CacheConstants.PREFIX + CacheConstants.SYS_CONFIG_KEY + configKey;
}
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index f7bad71..378758f 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -2,3 +2,6 @@
spring:
profiles:
active: xyyj
+ruoyi:
+ redis:
+ keyPrefix: ${spring.profiles.active}
--
Gitblit v1.9.3