com.dcits.govsbu.southernbase.baseproject2.helper.aop.AuthorityHelperAOP.java Source code

Java tutorial

Introduction

Here is the source code for com.dcits.govsbu.southernbase.baseproject2.helper.aop.AuthorityHelperAOP.java

Source

/*******************************************************************************
 * Copyright (c) 2015, 2016  104446930@qq.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 *******************************************************************************/
package com.dcits.govsbu.southernbase.baseproject2.helper.aop;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;

import com.dcits.govsbu.southernbase.baseproject2.helper.AuthorityHelper;
import com.dcits.govsbu.southernbase.baseproject2.helper.constants.AdminUrl;
import com.dcits.govsbu.southernbase.baseproject2.helper.constants.Messages;

/**
 * Title:AuthorityHelperAOP.java
 * Description:????
 * Company: DigitalChina 2016
 * @author:
 * @date:2016126 ?3:49:39
 * 
 */
@Aspect
@Component
public class AuthorityHelperAOP {

    @Autowired
    private AuthorityHelper authorityHelper;

    //    @Pointcut("execution(* org.zhangmz.pickles.controller.admin..*(..)) "
    //          + " and !execution(* org.zhangmz.pickles.controller.admin.AdminIndexController.(..))")
    //    private void actionMethod() {}
    @Pointcut("execution(* com.dcits.govsbu.southernbase.baseproject2.controller.example..*(..)) ")
    private void actionMethod() {
    }
    //   /**
    //    * 
    //    * @Title: authorityBeforeService 
    //    * @Description: ?????
    //    * @param token
    //    * @throws 
    //    * :
    //    * :2016126 ?3:55:56
    //    * ????
    //    *       ??
    //    */
    //   @Before("execution(* org.zhangmz.pickles.controller.admin.AdminMainController.*(..)) && args(token,..)")    
    //   public void authorityBeforeService(String token){
    //      System.out.println ("???TOKEN==" + token);
    //      authorityHelper.isAdmin(token);
    //   }
    //   
    //   @After("execution(* org.zhangmz.pickles.controller.admin.AdminMainController.*(..)) && args(token,..)") 
    //   public void authorityAfterService(String token){
    //      System.out.println ("???TOKEN==" + token);
    //      authorityHelper.isAdmin(token);
    //   }

    @Around("actionMethod()")
    public Object authorityAroundService(ProceedingJoinPoint joinpoint) throws Throwable {
        ModelAndView result = null;
        try {
            // ? begin
            // long start = System.currentTimeMillis();

            // ????TOKEN
            Object[] args = joinpoint.getArgs();

            if (args.length > 0 && authorityHelper.isAdmin((String) args[0])) {
                // ???? TOKEN/mainInfo
                // return joinpoint.proceed();
                result = ((ModelAndView) joinpoint.proceed()).addObject("token", args[0]);
            } else {
                result = new ModelAndView(AdminUrl.loginPage);
                result.addObject("message", Messages.USER_NOT_ADMIN);
            }

            // long end = System.currentTimeMillis();
            // System.out.println("end! performance took " + (end-start) + " milliseconds");
            // ? end
        } catch (Throwable e) {
            // e.printStackTrace();
            result = new ModelAndView(AdminUrl.loginPage);
            result.addObject("message", Messages.AOP_HAS_ERROR);
        }

        return result;
    }

}