From c38eb0c68c3d28d53ddb657ef9d7d7b9168f4106 Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Sat, 3 Aug 2024 19:22:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E8=A7=A3=E5=A4=84=E7=90=86=E5=99=A8?= =?UTF-8?q?=E4=BC=A0=E9=80=92=E5=8F=82=E6=95=B0=E6=94=B9=E4=B8=BA=20Method?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/SaAnnotationAbstractHandler.java | 12 ++++++------ .../annotation/handler/SaCheckDisableHandler.java | 4 ++-- .../annotation/handler/SaCheckHttpBasicHandler.java | 4 ++-- .../annotation/handler/SaCheckHttpDigestHandler.java | 4 ++-- .../annotation/handler/SaCheckLoginHandler.java | 4 ++-- .../satoken/annotation/handler/SaCheckOrHandler.java | 10 +++++----- .../annotation/handler/SaCheckPermissionHandler.java | 4 ++-- .../annotation/handler/SaCheckRoleHandler.java | 4 ++-- .../annotation/handler/SaCheckSafeHandler.java | 4 ++-- .../satoken/annotation/handler/SaIgnoreHandler.java | 4 ++-- .../dev33/satoken/strategy/SaAnnotationStrategy.java | 2 +- .../main/java/com/pj/cases/test/TestController.java | 2 -- .../main/java/com/pj/satoken/SaTokenConfigure.java | 7 +++---- .../handler/CheckAccountHandler.java | 4 ++-- .../handler/SaUserCheckLoginHandler.java | 4 ++-- .../handler/SaUserCheckPermissionHandler.java | 4 ++-- .../handler/SaUserCheckRoleHandler.java | 4 ++-- .../handler/SaUserCheckSafeHandler.java | 4 ++-- 18 files changed, 41 insertions(+), 44 deletions(-) diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaAnnotationAbstractHandler.java b/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaAnnotationAbstractHandler.java index b9d8b4ba..8db94fc9 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaAnnotationAbstractHandler.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaAnnotationAbstractHandler.java @@ -16,7 +16,7 @@ package cn.dev33.satoken.annotation.handler; import java.lang.annotation.Annotation; -import java.lang.reflect.AnnotatedElement; +import java.lang.reflect.Method; /** * 所有注解处理器的父接口 @@ -35,18 +35,18 @@ public interface SaAnnotationAbstractHandler { /** * 所需要执行的校验方法 * @param at 注解对象 - * @param element 被标注的注解的元素引用(类或方法) + * @param method 被标注的注解的方法引用 */ @SuppressWarnings("unchecked") - default void check(Annotation at, AnnotatedElement element) { - checkMethod((T) at, element); + default void check(Annotation at, Method method) { + checkMethod((T) at, method); } /** * 所需要执行的校验方法(转换类型后) * @param at 注解对象 - * @param element 被标注的注解的元素引用(类或方法) + * @param method 被标注的注解的方法引用 */ - void checkMethod(T at, AnnotatedElement element); + void checkMethod(T at, Method method); } \ No newline at end of file diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaCheckDisableHandler.java b/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaCheckDisableHandler.java index 4f613612..67817621 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaCheckDisableHandler.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaCheckDisableHandler.java @@ -19,7 +19,7 @@ import cn.dev33.satoken.SaManager; import cn.dev33.satoken.annotation.SaCheckDisable; import cn.dev33.satoken.stp.StpLogic; -import java.lang.reflect.AnnotatedElement; +import java.lang.reflect.Method; /** * 注解 SaCheckDisable 的处理器 @@ -35,7 +35,7 @@ public class SaCheckDisableHandler implements SaAnnotationAbstractHandler } @Override - public void checkMethod(SaCheckOr at, AnnotatedElement element) { - _checkMethod(at.login(), at.role(), at.permission(), at.safe(), at.httpBasic(), at.httpDigest(), at.disable(), element); + public void checkMethod(SaCheckOr at, Method method) { + _checkMethod(at.login(), at.role(), at.permission(), at.safe(), at.httpBasic(), at.httpDigest(), at.disable(), method); } public static void _checkMethod( @@ -51,7 +51,7 @@ public class SaCheckOrHandler implements SaAnnotationAbstractHandler SaCheckHttpBasic[] httpBasic, SaCheckHttpDigest[] httpDigest, SaCheckDisable[] disable, - AnnotatedElement element + Method method ) { // 先把所有注解塞到一个 list 里 List annotationList = new ArrayList<>(); @@ -72,7 +72,7 @@ public class SaCheckOrHandler implements SaAnnotationAbstractHandler List errorList = new ArrayList<>(); for (Annotation item : annotationList) { try { - SaAnnotationStrategy.instance.annotationHandlerMap.get(item.annotationType()).check(item, element); + SaAnnotationStrategy.instance.annotationHandlerMap.get(item.annotationType()).check(item, method); // 只要有一个校验通过,就可以直接返回了 return; } catch (SaTokenException e) { diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaCheckPermissionHandler.java b/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaCheckPermissionHandler.java index b2e18b7e..64e79b01 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaCheckPermissionHandler.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/annotation/handler/SaCheckPermissionHandler.java @@ -22,7 +22,7 @@ import cn.dev33.satoken.exception.NotPermissionException; import cn.dev33.satoken.stp.StpLogic; import cn.dev33.satoken.util.SaFoxUtil; -import java.lang.reflect.AnnotatedElement; +import java.lang.reflect.Method; /** * 注解 SaCheckPermission 的处理器 @@ -38,7 +38,7 @@ public class SaCheckPermissionHandler implements SaAnnotationAbstractHandler { } @Override - public void checkMethod(SaIgnore at, AnnotatedElement element) { + public void checkMethod(SaIgnore at, Method method) { _checkMethod(); } diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/strategy/SaAnnotationStrategy.java b/sa-token-core/src/main/java/cn/dev33/satoken/strategy/SaAnnotationStrategy.java index 12f24050..ad5cee77 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/strategy/SaAnnotationStrategy.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/strategy/SaAnnotationStrategy.java @@ -102,7 +102,7 @@ public final class SaAnnotationStrategy { // 先校验 Method 所属 Class 上的注解 Annotation classTakeAnnotation = instance.getAnnotation.apply(method.getDeclaringClass(), (Class)entry.getKey()); if(classTakeAnnotation != null) { - entry.getValue().check(classTakeAnnotation, method.getDeclaringClass()); + entry.getValue().check(classTakeAnnotation, method); } // 再校验 Method 上的注解 diff --git a/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/cases/test/TestController.java b/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/cases/test/TestController.java index a4ea6f76..da5aa8eb 100644 --- a/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/cases/test/TestController.java +++ b/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/cases/test/TestController.java @@ -1,7 +1,6 @@ package com.pj.cases.test; import cn.dev33.satoken.util.SaResult; -import com.pj.satoken.custom_annotation.CheckAccount; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -16,7 +15,6 @@ public class TestController { // 测试 浏览器访问: http://localhost:8081/test/test @RequestMapping("test") - @CheckAccount(name = "sa", pwd = "123456") public SaResult test() { System.out.println("------------进来了"); return SaResult.ok(); diff --git a/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/SaTokenConfigure.java b/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/SaTokenConfigure.java index 643a14b7..33b25a27 100644 --- a/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/SaTokenConfigure.java +++ b/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/SaTokenConfigure.java @@ -6,7 +6,6 @@ import cn.dev33.satoken.interceptor.SaInterceptor; import cn.dev33.satoken.router.SaRouter; import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.strategy.SaAnnotationStrategy; -import cn.dev33.satoken.strategy.SaStrategy; import cn.dev33.satoken.util.SaResult; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -118,9 +117,9 @@ public class SaTokenConfigure implements WebMvcConfigurer { @PostConstruct public void rewriteSaStrategy() { // 重写Sa-Token的注解处理器,增加注解合并功能 -// SaAnnotationStrategy.instance.getAnnotation = (element, annotationClass) -> { -// return AnnotatedElementUtils.getMergedAnnotation(element, annotationClass); -// }; + SaAnnotationStrategy.instance.getAnnotation = (element, annotationClass) -> { + return AnnotatedElementUtils.getMergedAnnotation(element, annotationClass); + }; } } diff --git a/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/custom_annotation/handler/CheckAccountHandler.java b/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/custom_annotation/handler/CheckAccountHandler.java index 5d5e4a60..96cb659e 100644 --- a/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/custom_annotation/handler/CheckAccountHandler.java +++ b/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/custom_annotation/handler/CheckAccountHandler.java @@ -6,7 +6,7 @@ import cn.dev33.satoken.exception.SaTokenException; import com.pj.satoken.custom_annotation.CheckAccount; import org.springframework.stereotype.Component; -import java.lang.reflect.AnnotatedElement; +import java.lang.reflect.Method; /** * 注解 CheckAccount 的处理器 @@ -25,7 +25,7 @@ public class CheckAccountHandler implements SaAnnotationAbstractHandler