授权与认证之jwt(五)创建Aop切面类
接上篇授权与认证之jwt(五)创建ShiroConfig类后,现在我们要利用AOP,把更新的令牌返回给客户端我们在写OAuth2Filter的时候,把更新后的令牌写到ThreadLocalToken里面的ThreadLocal。那么本篇,我们要创建AOP切面类,拦截所有Web方法的返回值,在返回的R对象中添加更新后的令牌。话不多说 上代码
@Aspect
@Component
public class TokenAspect {
@Autowired
private ThreadLocalToken threadLocalToken;
@Pointcut("execution(public * com.example.emos.wx.controller.*.*(..)))")
public void aspect(){
}
@Around("aspect()")
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
//方法执行结果
R r= (R) joinPoint.proceed();
String token = threadLocalToken.getToken();
//如果ThreadLocal中存在token,说明是更新的Token
if(token!=null){
//往响应中放置token
r.put("token",token);
threadLocalToken.clear();
}
return r;
}
}