Explorar el Código

优化白名单支持对通配符路径匹配

RuoYi hace 1 mes
padre
commit
febd96fe53
Se han modificado 1 ficheros con 6 adiciones y 1 borrados
  1. 6 1
      src/utils/validate.js

+ 6 - 1
src/utils/validate.js

@@ -5,7 +5,12 @@
  * @returns {Boolean}
  */
 export function isPathMatch(pattern, path) {
-  const regexPattern = pattern.replace(/\//g, '\\/').replace(/\*\*/g, '.*').replace(/\*/g, '[^\\/]*')
+  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)
 }