背景:因项目需求,需要在访问特定接口时进行单独的参数验签。因为项目的登录模块是用的shiro,为了避免修改登录模块的代码,所以使用了aop对单独的接口验签。
直接贴代码:
目录结构
SignatureVerificationAop为声明的一个注释类
@Target(ElementType.METHOD):SignatureVerificationAop所修饰的范围,这个aop只用于方法。
@Retention(RetentionPolicy.RUNTIME):SignatureVerificationAop的生命周期,注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在。
类的代码
切面类
剩下的几个注释就自行查询吧,验签的过程也可以自定义,重要的是@Around和joinPoint.proceed(),验签结束后可以去执行contller里面的代码。