71 lines
2.0 KiB
Java
71 lines
2.0 KiB
Java
|
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日
|
||
|
*/
|
||
|
@Component
|
||
|
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
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
|