[spring]巧妙利用AOP狸猫换太子

2015-11-11  本文已影响23人  复苏森林

我们从前台往后台传值的时候,传的可能是一个加密后的字符串,但是不希望后台的controller类直接获得是这个加密字符串,而是解密后的字符串。这个时候怎么办呢?可以增加一个aop来处理

@Component
@Aspect
@Order(10000) //order的值越小越优先执行
public class SecurityAspect {

    @Autowired
    private HttpServletRequest request; // 简单的注入request

    @Pointcut("execution(@org.springframework.web.bind.annotation.RequestMapping * *(..))")
    public void aspect() {
    }
    
    @Around(value = "aspect() and execution(* create(..)))")
    public Object aroundCreate(ProceedingJoinPoint joinPoint) throws Throwable {
        Object[] params = joinPoint.getArgs();
        params[0] = 解密(param[0]); // 这里解密第一个参数
        return joinPoint.proceed(params);

    }
}

上一篇 下一篇

猜你喜欢

热点阅读