From f5a65b910593501169b0e2db04a9b9c6fe790698 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期六, 26 八月 2023 13:28:55 +0800
Subject: [PATCH] 角色管理

---
 sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java b/sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java
new file mode 100644
index 0000000..4e6b38f
--- /dev/null
+++ b/sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java
@@ -0,0 +1,69 @@
+package com.yuanchu.limslaboratory.aop;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yuanchu.limslaboratory.annotation.RequestInfo;
+import com.yuanchu.limslaboratory.exception.AuthException;
+import com.yuanchu.limslaboratory.utils.ServletUtils;
+import com.yuanchu.limslaboratory.vo.Result;
+import io.swagger.annotations.ApiOperation;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/25
+ */
+@Component
+@Slf4j
+@Aspect
+public class AuthRequestAspect {
+
+    @Pointcut("@annotation(com.yuanchu.limslaboratory.annotation.RequestInfo)")
+    public void pointCut() {
+    }
+
+    //private ThreadLocal<ConcurrentHashMap<String, Map>> threadLocal;
+
+    @SneakyThrows
+    @Before("pointCut()")
+    public void before(JoinPoint joinPoint) {
+        HttpServletRequest request = ServletUtils.getRequest();
+        log.info("鎷︽埅=====銆�"+request.getServletPath());
+        Class<?> clazz = joinPoint.getTarget().getClass();
+        String clazzName = joinPoint.getTarget().getClass().getName();
+        // 鑾峰彇璁块棶鐨勬柟娉曞悕
+        String methodName = joinPoint.getSignature().getName();
+        // 鑾峰彇鏂规硶鎵�鏈夊弬鏁板強鍏剁被鍨�
+        Class[] argClz = ((MethodSignature) joinPoint.getSignature()).getParameterTypes();
+        // 鑾峰彇璁块棶鐨勬柟娉曞璞�
+        Method method = clazz.getDeclaredMethod(methodName, argClz);
+        // 鍒ゆ柇褰撳墠璁块棶鐨勬柟娉曟槸鍚﹀瓨鍦ㄦ寚瀹氭敞瑙�
+        if (method.isAnnotationPresent(RequestInfo.class)) {
+            RequestInfo annotation = method.getAnnotation(RequestInfo.class);
+            System.out.println(annotation.name());
+            System.out.println(annotation.type());
+        }
+        //throw new AuthException("400","鏃犳潈闄�");
+    }
+
+
+
+
+}

--
Gitblit v1.9.3