diff --git a/api-common/src/main/java/com/heyu/api/common/annotation/AdminNotNeedLogin.java b/api-common/src/main/java/com/heyu/api/common/annotation/AdminNotNeedLogin.java new file mode 100644 index 0000000..6964463 --- /dev/null +++ b/api-common/src/main/java/com/heyu/api/common/annotation/AdminNotNeedLogin.java @@ -0,0 +1,11 @@ +package com.heyu.api.common.annotation; + + +import java.lang.annotation.*; + +@Target({ElementType.TYPE, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface AdminNotNeedLogin { + +} diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/AnnotationUtils.java b/api-mapper/src/main/java/com/heyu/api/data/utils/AnnotationUtils.java index 4663dea..131883f 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/utils/AnnotationUtils.java +++ b/api-mapper/src/main/java/com/heyu/api/data/utils/AnnotationUtils.java @@ -91,6 +91,22 @@ public class AnnotationUtils { + public static T getAnnotationValueByClass(Class clazz, String annotationName, String key) { + Annotation annotation[] = clazz.getAnnotations(); + if (annotation != null && annotation.length > 0) { + for (Annotation annotation1 : annotation) { + if (annotationName.equals(getAnnotationName(annotation1))) { + return getAnnotationValue(annotation1, key); + } + } + } + return null; + } + + + + + public static T getAnnotationValue(Annotation annotation,String key) { try { Method method = annotation.getClass().getMethod(key); diff --git a/api-web/api-interface/src/main/java/com/heyu/api/aop/ZhenZhenLogAop.java b/api-web/api-interface/src/main/java/com/heyu/api/aop/ZhenZhenLogAop.java index 3a24a32..3e5b51c 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/aop/ZhenZhenLogAop.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/aop/ZhenZhenLogAop.java @@ -92,6 +92,7 @@ public class ZhenZhenLogAop { try { args = recordRequestLog(point.getArgs(), uri); Signature sig = point.getSignature(); + Method method = ((MethodSignature) sig).getMethod(); if (sig instanceof MethodSignature) { methodName = ((MethodSignature) sig).getMethod().getName(); @@ -99,6 +100,7 @@ public class ZhenZhenLogAop { describe = AnnotationUtils.getAnnotationValueByMethod(method, "Describe", "value"); + Class clazz = point.getTarget().getClass(); className = clazz.getName(); @@ -140,12 +142,12 @@ public class ZhenZhenLogAop { } else if (uri.startsWith(ApiConstants.MM_URI_START)) { token = attributes.getRequest().getHeader(ApiConstants.MM_TOKEN); Object tokenValue = redisUtils.get(token); + boolean adminNotNeedLogin = AnnotationUtils.hasAnnotation(clazz, "AdminNotNeedLogin"); // 登录不拦截 - if (!ApiConstants.MM_ADMIN_LOGIN_RUI.equals(uri)) { - if (tokenValue == null) { - return R.error("请登录"); - } + if (!adminNotNeedLogin && tokenValue == null) { + return R.error("请登录"); } + if (tokenValue != null) { try { VVAdminDTO vvAdminDTO = JSONObject.parseObject(tokenValue + "", VVAdminDTO.class); diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminLoginController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminLoginController.java index bb4eb8f..f54de0c 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminLoginController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminLoginController.java @@ -3,6 +3,7 @@ package com.heyu.api.controller.mm; import com.alibaba.fastjson.JSON; import com.heyu.api.alibaba.request.mm.VVAdminRequest; +import com.heyu.api.common.annotation.AdminNotNeedLogin; import com.heyu.api.common.annotation.Describe; import com.heyu.api.data.constants.RedisConstans; import com.heyu.api.data.dao.vv.VvAdminDao; @@ -25,6 +26,7 @@ import java.util.Date; @Slf4j @RestController @RequestMapping("/mm/user/") +@AdminNotNeedLogin public class AdminLoginController { @Autowired