業務上需要用到模塊間調用,然後由於鑑權原因不能直接訪問,
去網上搜了方法,配置攔截,傳遞token,問題解決
@Configuration
public class FeignRequestInterceptor implements RequestInterceptor {
private static final String AUTHORIZATION_HEADER = "authorization";
@Override
public void apply(RequestTemplate template) {
Map<String,String> headMap=getHeaders(getHttpServletRequest());
template.header(AUTHORIZATION_HEADER, headMap.get(AUTHORIZATION_HEADER));
}
private HttpServletRequest getHttpServletRequest() {
try {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
} catch (Exception e) {
return null;
}
}
private Map<String, String> getHeaders(HttpServletRequest request) {
Map<String, String> map = new LinkedHashMap<>();
Enumeration<String> enumeration = request.getHeaderNames();
while (enumeration.hasMoreElements()) {
String key = enumeration.nextElement();
String value = request.getHeader(key);
map.put(key, value);
}
return map;
}
}
然後碰上了 read time out的錯誤
再加上下面這個,問題解決
feign:
client:
config:
default:
connectTimeout: 50000
readTimeout: 50000
loggerLevel: basic