SecuritySignAop.java
1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.diligrp.cashier.shared.aop;
import com.diligrp.cashier.shared.annotation.Sign;
import com.diligrp.cashier.shared.handler.sign.NoSign;
import com.diligrp.cashier.shared.handler.sign.SecuritySign;
import com.diligrp.cashier.shared.util.SpringContextUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* @author dengwei
* @version 1.0.0
* @ClassName SecuritySignAop.java
* @Description SecuritySignAop
* 验签流程 放到网关合理点 前期先放到AOP下
*/
@Aspect
@Component
@Order(1)
public class SecuritySignAop {
/**
* doBefore
*/
@Before(value = "@annotation(sign)")
public void doBefore(JoinPoint joinPoint, Sign sign) {
Class<? extends SecuritySign> securitySign = sign.sign();
if (securitySign == NoSign.class) {
return;
}
Object[] args = joinPoint.getArgs();
if (ArrayUtils.isEmpty(args)) {
return;
}
SecuritySign signBean = SpringContextUtils.getBean(securitySign);
signBean.sign(null, null, args[0]);
}
}