package com.ard.work.component.forest; import com.ard.work.domain.receiver.AccessTokenReceiver; import com.ard.work.service.IArdServerService; import com.dtflys.forest.http.ForestRequest; import com.dtflys.forest.interceptor.Interceptor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.Resource; @Component @Slf4j public class TokenInterceptor implements Interceptor { @Resource private IArdServerService ardServerService; /** * 该方法在请求发送之前被调用, 若返回false则不会继续发送请求 * * @Param request Forest请求对象 */ @Override public boolean beforeExecute(ForestRequest req) { log.debug("invoke Simple beforeExecute"); String serverId = (String) req.getVariableValue("serverId"); AccessTokenReceiver accessToken = ardServerService.getAccessToken(serverId); req.addHeader("x-cid", accessToken.getCompanyId()); req.addHeader("x-token", accessToken.getAccessToken()); return true; // 继续执行请求返回true } }