package com.gkhy.exam.framework.aspectj; import com.gkhy.exam.common.annotation.DataDesensitization; import com.gkhy.exam.common.utils.DesenseUtil; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Method; /** * 数据脱密 */ @Aspect @Component @Slf4j public class DataDesensitizationAspect { @Autowired private HttpServletRequest request; @Pointcut("@annotation(com.gkhy.exam.common.annotation.DataDesensitization)") public void pointcut(){} @Around("pointcut()") public Object doaround(ProceedingJoinPoint point) throws Throwable { Object object=point.proceed(); String uri = request.getRequestURI(); // if(!uri.startsWith("/app/api")){ // return object; // } MethodSignature signature = (MethodSignature) point.getSignature(); Method method = signature.getMethod(); if(!method.isAnnotationPresent(DataDesensitization.class)){ return object; } DesenseUtil.assertResult(object); return object; } }