From 1002b36c0a698c794320d1544c464c13b303e53c Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Thu, 16 Apr 2026 13:44:02 +0800
Subject: [PATCH] 优化白名单支持对通配符路径匹配
---
ruoyi-ui/src/utils/validate.js | 41 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 40 insertions(+), 1 deletions(-)
diff --git a/ruoyi-ui/src/utils/validate.js b/ruoyi-ui/src/utils/validate.js
index 7986433..fddf7ac 100644
--- a/ruoyi-ui/src/utils/validate.js
+++ b/ruoyi-ui/src/utils/validate.js
@@ -1,4 +1,43 @@
/**
+ * 路径匹配器
+ * @param {string} pattern
+ * @param {string} path
+ * @returns {Boolean}
+ */
+export function isPathMatch(pattern, path) {
+ const regexPattern = pattern
+ .replace(/([.+^${}()|\[\]\\])/g, '\\$1')
+ .replace(/\*\*/g, '__DOUBLE_STAR__')
+ .replace(/\*/g, '[^/]*')
+ .replace(/__DOUBLE_STAR__/g, '.*')
+ .replace(/\?/g, '[^/]')
+ const regex = new RegExp(`^${regexPattern}$`)
+ return regex.test(path)
+}
+
+/**
+ * 判断value字符串是否为空
+ * @param {string} value
+ * @returns {Boolean}
+ */
+export function isEmpty(value) {
+ if (value == null || value == "" || value == undefined || value == "undefined") {
+ return true
+ }
+ return false
+}
+
+/**
+ * 判断url是否是http或https
+ * @param {string} url
+ * @returns {Boolean}
+ */
+export function isHttp(url) {
+ return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1
+}
+
+/**
+ * 判断path是否为外链
* @param {string} path
* @returns {Boolean}
*/
@@ -65,7 +104,7 @@
* @returns {Boolean}
*/
export function isString(str) {
- return typeof str === 'string' || str instanceof String;
+ return typeof str === 'string' || str instanceof String
}
/**
--
Gitblit v1.9.3