From 9ed5b521d613edb51b160cca931ee680019e2896 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期二, 07 三月 2023 22:26:13 +0800 Subject: [PATCH] fix 修复 用户密码暴露问题 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/monitor/CacheController.java | 133 +++---------------------------------------- 1 files changed, 11 insertions(+), 122 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/monitor/CacheController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/monitor/CacheController.java index 380cfcc..33d5cb6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/monitor/CacheController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/monitor/CacheController.java @@ -1,20 +1,15 @@ package com.ruoyi.system.controller.monitor; import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.hutool.core.collection.CollUtil; -import com.ruoyi.common.core.constant.CacheConstants; -import com.ruoyi.common.core.constant.CacheNames; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.json.utils.JsonUtils; -import com.ruoyi.common.redis.utils.CacheUtils; -import com.ruoyi.common.redis.utils.RedisUtils; -import com.ruoyi.system.domain.SysCache; +import com.ruoyi.system.domain.vo.CacheListInfoVo; import lombok.RequiredArgsConstructor; import org.redisson.spring.data.connection.RedissonConnectionFactory; import org.springframework.data.redis.connection.RedisConnection; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.util.*; @@ -30,26 +25,12 @@ private final RedissonConnectionFactory connectionFactory; - private final static List<SysCache> CACHES = new ArrayList<>(); - - static { - CACHES.add(new SysCache(CacheConstants.LOGIN_TOKEN_KEY, "鐢ㄦ埛淇℃伅")); - CACHES.add(new SysCache(CacheConstants.ONLINE_TOKEN_KEY, "鍦ㄧ嚎鐢ㄦ埛")); - CACHES.add(new SysCache(CacheNames.SYS_CONFIG, "閰嶇疆淇℃伅")); - CACHES.add(new SysCache(CacheNames.SYS_DICT, "鏁版嵁瀛楀吀")); - 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(CacheNames.SYS_OSS_CONFIG, "OSS閰嶇疆")); - CACHES.add(new SysCache(CacheConstants.PWD_ERR_CNT_KEY, "瀵嗙爜閿欒娆℃暟")); - } - /** * 鑾峰彇缂撳瓨鐩戞帶鍒楄〃 */ @SaCheckPermission("monitor:cache:list") @GetMapping() - public R<Map<String, Object>> getInfo() throws Exception { + public R<CacheListInfoVo> getInfo() throws Exception { RedisConnection connection = connectionFactory.getConnection(); Properties commandStats = connection.commands().info("commandstats"); @@ -63,104 +44,12 @@ pieList.add(data); }); } - return R.ok(Map.of( - "info", connection.commands().info(), - "dbSize", connection.commands().dbSize(), - "commandStats", pieList - )); + + CacheListInfoVo infoVo = new CacheListInfoVo(); + infoVo.setInfo(connection.commands().info()); + infoVo.setDbSize(connection.commands().dbSize()); + infoVo.setCommandStats(pieList); + return R.ok(infoVo); } - /** - * 鑾峰彇缂撳瓨鐩戞帶缂撳瓨鍚嶅垪琛� - */ - @SaCheckPermission("monitor:cache:list") - @GetMapping("/getNames") - public R<List<SysCache>> cache() { - return R.ok(CACHES); - } - - /** - * 鑾峰彇缂撳瓨鐩戞帶Key鍒楄〃 - * - * @param cacheName 缂撳瓨鍚� - */ - @SaCheckPermission("monitor:cache:list") - @GetMapping("/getKeys/{cacheName}") - public R<Collection<String>> getCacheKeys(@PathVariable String cacheName) { - Collection<String> cacheKeys = new HashSet<>(0); - if (isCacheNames(cacheName)) { - Set<Object> keys = CacheUtils.keys(cacheName); - if (CollUtil.isNotEmpty(keys)) { - cacheKeys = StreamUtils.toList(keys, Object::toString); - } - } else { - cacheKeys = RedisUtils.keys(cacheName + "*"); - } - return R.ok(cacheKeys); - } - - /** - * 鑾峰彇缂撳瓨鐩戞帶缂撳瓨鍊艰鎯� - * - * @param cacheName 缂撳瓨鍚� - * @param cacheKey 缂撳瓨key - */ - @SaCheckPermission("monitor:cache:list") - @GetMapping("/getValue/{cacheName}/{cacheKey}") - public R<SysCache> getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey) { - Object cacheValue; - if (isCacheNames(cacheName)) { - cacheValue = CacheUtils.get(cacheName, cacheKey); - } else { - cacheValue = RedisUtils.getCacheObject(cacheKey); - } - SysCache sysCache = new SysCache(cacheName, cacheKey, JsonUtils.toJsonString(cacheValue)); - return R.ok(sysCache); - } - - /** - * 娓呯悊缂撳瓨鐩戞帶缂撳瓨鍚� - * - * @param cacheName 缂撳瓨鍚� - */ - @SaCheckPermission("monitor:cache:list") - @DeleteMapping("/clearCacheName/{cacheName}") - public R<Void> clearCacheName(@PathVariable String cacheName) { - if (isCacheNames(cacheName)) { - CacheUtils.clear(cacheName); - } else { - RedisUtils.deleteKeys(cacheName + "*"); - } - return R.ok(); - } - - /** - * 娓呯悊缂撳瓨鐩戞帶Key - * - * @param cacheKey key鍚� - */ - @SaCheckPermission("monitor:cache:list") - @DeleteMapping("/clearCacheKey/{cacheName}/{cacheKey}") - public R<Void> clearCacheKey(@PathVariable String cacheName, @PathVariable String cacheKey) { - if (isCacheNames(cacheName)) { - CacheUtils.evict(cacheName, cacheKey); - } else { - RedisUtils.deleteObject(cacheKey); - } - return R.ok(); - } - - /** - * 娓呯悊鍏ㄩ儴缂撳瓨鐩戞帶 - */ - @SaCheckPermission("monitor:cache:list") - @DeleteMapping("/clearCacheAll") - public R<Void> clearCacheAll() { - RedisUtils.deleteKeys("*"); - return R.ok(); - } - - private boolean isCacheNames(String cacheName) { - return !StringUtils.contains(cacheName, ":"); - } } -- Gitblit v1.9.3