From ec9f12511c8a4c06836242cab745fb20cb485535 Mon Sep 17 00:00:00 2001 From: xy <3293232930@qq.com> Date: Mon, 24 May 2021 17:24:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=83=E7=B4=A0=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E9=80=BB=E8=BE=91,=20=E7=9B=AE=E6=B5=8B=E4=BC=9A?= =?UTF-8?q?=E5=BF=AB=E5=BE=88=E5=A4=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../action/SaTokenActionDefaultImpl.java | 12 +++++------- .../java/cn/dev33/satoken/util/SaFoxUtil.java | 17 ----------------- 2 files changed, 5 insertions(+), 24 deletions(-) diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java b/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java index 39350bb1..1aa86328 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java @@ -4,6 +4,7 @@ import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Method; import java.util.List; import java.util.UUID; +import java.util.regex.Pattern; import cn.dev33.satoken.SaManager; import cn.dev33.satoken.annotation.SaCheckLogin; @@ -72,14 +73,11 @@ public class SaTokenActionDefaultImpl implements SaTokenAction { if(list == null || list.size() == 0) { return false; } - // 遍历匹配 - for (String patt : list) { - if(SaFoxUtil.vagueMatch(patt, element)) { - return true; - } + if (list.contains(element)) { + return true; + }else{ + return list.stream().anyMatch(patt-> Pattern.matches(patt.replaceAll("\\*", ".*"), element)); } - // 走出for循环说明没有一个元素可以匹配成功 - return false; } /** diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java b/sa-token-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java index 7569efd8..6cbb1e0e 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java @@ -130,21 +130,4 @@ public class SaFoxUtil { return list2; } - /** - * 字符串模糊匹配 - *
example: - *
user* user-add -- true - *
user* art-add -- false - * @param patt 表达式 - * @param str 待匹配的字符串 - * @return 是否可以匹配 - */ - public static boolean vagueMatch(String patt, String str) { - // 如果表达式不带有*号,则只需简单equals即可 (速度提升200倍) - if(patt.indexOf("*") == -1) { - return patt.equals(str); - } - return Pattern.matches(patt.replaceAll("\\*", ".*"), str); - } - }