Files
starRiverProperty/artifacts/decompiled/v1-cfr-compare-20211103/maven-unified-java/cn/cloudwalk/elevator/AcsFeignConfiguration.java
T
反编译工作区 e8672a3c7b fix: relocate cwos-portal decompiled output to correct path; remove nested directory
Former-commit-id: dc30d42a8c55ed8b2382a41dc2434233fbed9930
2026-04-29 12:09:48 +08:00

69 lines
3.8 KiB
Java

package cn.cloudwalk.elevator;
import cn.cloudwalk.cloud.context.CloudwalkSessionContextHolder;
import cn.cloudwalk.cloud.context.CloudwalkSessionObject;
import cn.cloudwalk.elevator.config.FeignThreadLocalUtil;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import java.util.Collection;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@Configuration
public class AcsFeignConfiguration implements RequestInterceptor {
protected final Logger logger = LoggerFactory.getLogger(AcsFeignConfiguration.class);
@Autowired
private CloudwalkSessionContextHolder cloudwalkSessionContextHolder;
public void apply(RequestTemplate requestTemplate) {
Map<String, String> map = FeignThreadLocalUtil.get();
if (map != null && !map.isEmpty()) {
requestTemplate.header("platformuserid", new String[] {map.get("platformuserid")});
requestTemplate.header("loginid", new String[] {map.get("loginid")});
requestTemplate.header("businessid", new String[] {map.get("businessid")});
requestTemplate.header("username", new String[] {map.get("username")});
requestTemplate.header("applicationid", new String[] {map.get("applicationid")});
requestTemplate.header("authorization", new String[] {map.get("authorization")});
this.logger.info("feign调用配置header参数, businessId={}, threadId={}",
requestTemplate.headers().get("businessid"), Long.valueOf(Thread.currentThread().getId()));
} else {
Map<String, Collection<String>> headerMap = requestTemplate.headers();
ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
if (null != attributes) {
HttpServletRequest request = attributes.getRequest();
if (!headerMap.containsKey("platformuserid")) {
requestTemplate.header("platformuserid", new String[] {request.getHeader("platformuserid")});
}
if (!headerMap.containsKey("loginid")) {
requestTemplate.header("loginid", new String[] {request.getHeader("loginid")});
}
if (!headerMap.containsKey("businessid")) {
requestTemplate.header("businessid", new String[] {request.getHeader("businessid")});
}
if (!headerMap.containsKey("username")) {
requestTemplate.header("username", new String[] {request.getHeader("username")});
}
if (!headerMap.containsKey("applicationid")) {
requestTemplate.header("applicationid", new String[] {request.getHeader("applicationid")});
}
if (!headerMap.containsKey("authorization")) {
requestTemplate.header("authorization", new String[] {request.getHeader("authorization")});
}
CloudwalkSessionObject session = this.cloudwalkSessionContextHolder.getSession();
if (StringUtils.isBlank(request.getHeader("businessid")) && session != null) {
requestTemplate.header("businessid", new String[] {session.getCompany().getCompanyId()});
}
if (StringUtils.isBlank(request.getHeader("applicationid")) && session != null)
requestTemplate.header("applicationid", new String[] {session.getApplicationId()});
}
}
}
}