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); - } - }