package com.chinaweal.aiccs.outside.interceptor;

import com.chinaweal.aiccs.outside.util.GzcssTokenUtils;
import com.dtflys.forest.http.ForestRequest;
import com.dtflys.forest.interceptor.Interceptor;
import com.dtflys.forest.reflection.ForestMethod;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * 统一门户网关拦截器
 * @author ymc
 * @date 2022年06月27日 10:10
 */
@Component
@Slf4j
public class DoorInterceptor implements Interceptor<String> {

    /**
     * 该方法在被调用时，并在beforeExecute前被调用
     * @Param request Forest请求对象
     * @Param args 方法被调用时传入的参数数组
     */
    @Override
    public void onInvokeMethod(ForestRequest req, ForestMethod method, Object[] args) {
        // req 为Forest请求对象，即 ForestRequest 类实例
        // method 为Forest方法对象，即 ForestMethod 类实例
        // addAttribute作用是添加和Forest请求对象以及该拦截器绑定的属性
        GzcssTokenUtils.setForestRequestHeader(req);
    }

}
