All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.jerrymice.permission.advisor.MethodInvocationInfo Maven / Gradle / Ivy

The newest version!
package com.github.jerrymice.permission.advisor;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.jerrymice.permission.annotation.Permission;
import com.github.jerrymice.permission.annotation.PermissionMeta;
import com.github.jerrymice.permission.annotation.PermissionResult;
import com.github.jerrymice.permission.config.PermissionRejectProcessor;
import com.github.jerrymice.permission.util.AnnotationUtils;
import lombok.Data;
import lombok.Getter;
import org.aopalliance.intercept.MethodInvocation;
import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;

import java.lang.reflect.Method;
import java.lang.reflect.Parameter;

/**
 * @author tumingjian
 * 说明:
 */
@Data
public class MethodInvocationInfo {
    /**
     * 当前方法
     */
    private Method method;
    /**
     * 当前方法的@Permission数组
     */
    private Permission[] permissions;
    /**
     * 当前方法的@PermissionResult数组
     */
    private PermissionResult[] permissionResults;
    /**
     * 当前方法参数
     */
    private Parameter[] parameters;
    /**
     * 方法参数上的注解
     */
    private PermissionMeta[] permissionMetas;
    /**
     * 当前方法参数名
     */
    private String[] parameterNames;
    /**
     * 当前方法的返回值类型
     */
    private Class returnType;

    public MethodInvocationInfo(MethodInvocation methodInvocation) {
        this.method = methodInvocation.getMethod();
        this.permissions = AnnotationUtils.getPermissionAnnotation(method);
        this.permissionResults = AnnotationUtils.getPermissionResultAnnotation(method);
        this.parameters = method.getParameters();
        permissionMetas=new PermissionMeta[parameters.length];
        this.parameterNames = new DefaultParameterNameDiscoverer().getParameterNames(method);
        this.returnType = method.getReturnType();
        for(int i=0;i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy