From 953ba965aa677a3eb7a977f4cdb10832629090ea Mon Sep 17 00:00:00 2001 From: xy <3293232930@qq.com> Date: Mon, 24 May 2021 11:24:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A8=8D=E5=BE=AE=E7=AE=80=E5=8C=96=E4=B8=80?= =?UTF-8?q?=E4=B8=8Bcn.dev33.satoken.action.SaTokenActionDefaultImpl.check?= =?UTF-8?q?MethodAnnotation=E7=9A=84=E9=AA=8C=E8=AF=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../action/SaTokenActionDefaultImpl.java | 46 +++++++------------ 1 file changed, 16 insertions(+), 30 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 efa57c5f..39350bb1 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 @@ -1,5 +1,6 @@ package cn.dev33.satoken.action; +import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Method; import java.util.List; import java.util.UUID; @@ -89,44 +90,29 @@ public class SaTokenActionDefaultImpl implements SaTokenAction { // 获取这个 Method 所属的 Class Class clazz = method.getDeclaringClass(); - - - // 从 Class 校验 @SaCheckLogin 注解 - if(clazz.isAnnotationPresent(SaCheckLogin.class)) { - SaCheckLogin at = clazz.getAnnotation(SaCheckLogin.class); + + validateAnnotation(clazz); + validateAnnotation(method); + } + + private void validateAnnotation(AnnotatedElement target) { + // 校验 @SaCheckLogin 注解 + if(target.isAnnotationPresent(SaCheckLogin.class)) { + SaCheckLogin at = target.getAnnotation(SaCheckLogin.class); SaManager.getStpLogic(at.key()).checkByAnnotation(at); } - // 从 Class 校验 @SaCheckRole 注解 - if(clazz.isAnnotationPresent(SaCheckRole.class)) { - SaCheckRole at = clazz.getAnnotation(SaCheckRole.class); + // 校验 @SaCheckRole 注解 + if(target.isAnnotationPresent(SaCheckRole.class)) { + SaCheckRole at = target.getAnnotation(SaCheckRole.class); SaManager.getStpLogic(at.key()).checkByAnnotation(at); } - // 从 Class 校验 @SaCheckPermission 注解 - if(clazz.isAnnotationPresent(SaCheckPermission.class)) { - SaCheckPermission at = clazz.getAnnotation(SaCheckPermission.class); + // 校验 @SaCheckPermission 注解 + if(target.isAnnotationPresent(SaCheckPermission.class)) { + SaCheckPermission at = target.getAnnotation(SaCheckPermission.class); SaManager.getStpLogic(at.key()).checkByAnnotation(at); } - - // 从 Method 校验 @SaCheckLogin 注解 - if(method.isAnnotationPresent(SaCheckLogin.class)) { - SaCheckLogin at = method.getAnnotation(SaCheckLogin.class); - SaManager.getStpLogic(at.key()).checkByAnnotation(at); - } - - // 从 Method 校验 @SaCheckRole 注解 - if(method.isAnnotationPresent(SaCheckRole.class)) { - SaCheckRole at = method.getAnnotation(SaCheckRole.class); - SaManager.getStpLogic(at.key()).checkByAnnotation(at); - } - - // 从 Method 校验 @SaCheckPermission 注解 - if(method.isAnnotationPresent(SaCheckPermission.class)) { - SaCheckPermission at = method.getAnnotation(SaCheckPermission.class); - SaManager.getStpLogic(at.key()).checkByAnnotation(at); - } - } }