From a17befcebbf11fd6535b5853b9b4b0a7cbc94cd7 Mon Sep 17 00:00:00 2001 From: Kairos <2990566096@qq.com> Date: Sat, 26 Apr 2025 09:15:22 +0800 Subject: [PATCH] =?UTF-8?q?feat(sa-token):=20=E5=9C=A8=20SaCheckOr=20?= =?UTF-8?q?=E6=B3=A8=E8=A7=A3=E4=B8=AD=E6=B7=BB=E5=8A=A0=20apikey=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 SaCheckOr 注解中添加 apikey 属性,用于设定 @SaCheckApiKey - 更新 SaCheckOrHandler 类,支持处理新增的 apikey 属性- 此更新扩展了 SaCheckOr 注解的功能,使其能够支持 API 密钥的验证 --- .../main/java/cn/dev33/satoken/annotation/SaCheckOr.java | 7 +++++++ .../dev33/satoken/annotation/handler/SaCheckOrHandler.java | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/annotation/SaCheckOr.java b/sa-token-core/src/main/java/cn/dev33/satoken/annotation/SaCheckOr.java index 5e2ce739..a2d2c716 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/annotation/SaCheckOr.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/annotation/SaCheckOr.java @@ -81,4 +81,11 @@ public @interface SaCheckOr { */ SaCheckDisable[] disable() default {}; + /** + * 设定 @SaCheckApiKey,参考 {@link SaCheckApiKey} + * + * @return / + */ + SaCheckApiKey[] apikey() default {}; + } diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaCheckOrHandler.java b/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaCheckOrHandler.java index bb7b9c1d..196d1c4c 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaCheckOrHandler.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaCheckOrHandler.java @@ -40,7 +40,7 @@ public class SaCheckOrHandler implements SaAnnotationHandlerInterface @Override public void checkMethod(SaCheckOr at, Method method) { - _checkMethod(at.login(), at.role(), at.permission(), at.safe(), at.httpBasic(), at.httpDigest(), at.disable(), method); + _checkMethod(at.login(), at.role(), at.permission(), at.safe(), at.httpBasic(), at.httpDigest(), at.disable(), at.apikey(), method); } public static void _checkMethod( @@ -51,6 +51,7 @@ public class SaCheckOrHandler implements SaAnnotationHandlerInterface SaCheckHttpBasic[] httpBasic, SaCheckHttpDigest[] httpDigest, SaCheckDisable[] disable, + SaCheckApiKey[] apikey, Method method ) { // 先把所有注解塞到一个 list 里 @@ -62,6 +63,7 @@ public class SaCheckOrHandler implements SaAnnotationHandlerInterface annotationList.addAll(Arrays.asList(disable)); annotationList.addAll(Arrays.asList(httpBasic)); annotationList.addAll(Arrays.asList(httpDigest)); + annotationList.addAll(Arrays.asList(apikey)); // 如果 atList 为空,说明 SaCheckOr 上不包含任何注解校验,我们直接跳过即可 if(annotationList.isEmpty()) {