package com.common.aspect; import com.common.core.utils.DesensitiveUtils; 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.springframework.stereotype.Component; /** * @description: 定义切面来处理敏感数据接口 * @author: duanyashu * @time: 2021-03-10 14:16 */ @Aspect @Component public class DesensitiveAspect { @Pointcut("@annotation(com.common.annotation.DesensitiveApi) || @within(com.common.annotation.DesensitiveApi)") public void operation(){} @Around("operation()") public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable { Object obj = joinPoint.proceed(); if (obj != null && !DesensitiveUtils.isPrimitive(obj.getClass())) { //进行脱敏处理 DesensitiveUtils.format(obj); } return obj; } }