2025-07-18 16:38:18 +08:00
|
|
|
package com.bjtds.brichat.config;
|
|
|
|
|
|
|
|
import com.bjtds.common.utils.FeignSudoUtil;
|
|
|
|
import feign.RequestInterceptor;
|
|
|
|
import feign.RequestTemplate;
|
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import org.springframework.web.context.request.RequestContextHolder;
|
|
|
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
import java.util.Enumeration;
|
|
|
|
import java.util.HashSet;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* fegin 配置文件
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* 2019年3月29日
|
|
|
|
*/
|
2025-09-09 16:13:13 +08:00
|
|
|
//@Component
|
2025-07-18 16:38:18 +08:00
|
|
|
public class FeignConfiguration extends FeignSudoUtil implements RequestInterceptor {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void apply(RequestTemplate template) {
|
|
|
|
|
|
|
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
|
|
|
HashSet<String> existHeaders = new HashSet<String>();
|
|
|
|
if (attributes != null) {
|
|
|
|
HttpServletRequest request = attributes.getRequest();
|
|
|
|
Enumeration<String> headerNames = request.getHeaderNames();
|
|
|
|
|
|
|
|
if (headerNames != null) {
|
|
|
|
while (headerNames.hasMoreElements()) {
|
|
|
|
|
|
|
|
String name = headerNames.nextElement();
|
|
|
|
existHeaders.add(name);
|
|
|
|
|
|
|
|
String values = this.filterHeader(name, request.getHeader(name));
|
|
|
|
if (values != null) {
|
|
|
|
template.header(name, values);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// for ZB {
|
|
|
|
if (!existHeaders.contains("__User__")) {
|
|
|
|
template.header("__User__", "1");
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!existHeaders.contains("__UserName__")) {
|
|
|
|
template.header("__UserName__","admin");
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!existHeaders.contains("__Role__")) {
|
|
|
|
template.header("__Role__", "SuperUsers");
|
|
|
|
}
|
|
|
|
if (!existHeaders.contains("__Department__")) {
|
|
|
|
template.header("__Department__", "");
|
|
|
|
}
|
|
|
|
if (!existHeaders.contains("__Permission__")) {
|
|
|
|
template.header("__Permission__", "*:*:*");
|
|
|
|
}
|
|
|
|
// } for ZB
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|