1.引入aop依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
2.自定义注解,使用Aspect 对传入数据加密,出参解密
/**
* @author zhenglong
* @Description: DESC加解密字段
* @Date 2020/11/26 9:32
*/
@Target({ElementType.FIELD,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Order(Ordered.HIGHEST_PRECEDENCE)
public @interface EnDeField {
/**
* 1 desc 、 2 md5和desc
* @return
*/
int value() default 1;
}
3.编写Aop,实现注解类添加到方法和对应的字段上,可以进行自动加解密
/**
* @author zhenglong
* @Description: 安全字段加密解密切面
* @Date 2020/11/26 0:12
*/
@Aspect
@Component("EndeFieldAspect")
public class EnDeFieldAop {
Logger log = LoggerFactory.getLogger(EnDeFieldAop.class);
// @Pointcut("execution(* com.csair.cargo.delivery.exchange.controller.*.*(..)) ")
// public void annotationPointCut() {
// }
@Around("execution(* com.csair.cargo.delivery.exchange.controller.*.*(..)) && @annotation(enDeField)")
public Object around(ProceedingJoinPoint joinPoint,EnDeField enDeField) {
Object responseObj = null;