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