mirror of https://github.com/jeecgboot/jeecg-boot
feign 动态创建client,拦截器执行多次 #2275
parent
d16520cc59
commit
766c48bdbf
|
@ -35,25 +35,26 @@ public class JeecgFeignService implements IJeecgFeignService {
|
||||||
.encoder(encoder)
|
.encoder(encoder)
|
||||||
.decoder(decoder)
|
.decoder(decoder)
|
||||||
.contract(contract);
|
.contract(contract);
|
||||||
|
|
||||||
|
builder.requestInterceptor(requestTemplate -> {
|
||||||
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||||
|
if (null != attributes) {
|
||||||
|
HttpServletRequest request = attributes.getRequest();
|
||||||
|
log.info("Feign request: {}", request.getRequestURI());
|
||||||
|
// 将token信息放入header中
|
||||||
|
String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN);
|
||||||
|
if(token==null){
|
||||||
|
token = request.getParameter("token");
|
||||||
|
}
|
||||||
|
log.info("Feign request token: {}", token);
|
||||||
|
requestTemplate.header(CommonConstant.X_ACCESS_TOKEN, token);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T newInstance(Class<T> clientClass, String serviceName) {
|
public <T> T newInstance(Class<T> clientClass, String serviceName) {
|
||||||
builder.requestInterceptor(requestTemplate -> {
|
|
||||||
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
|
||||||
if (null != attributes) {
|
|
||||||
HttpServletRequest request = attributes.getRequest();
|
|
||||||
log.info("Feign request: {}", request.getRequestURI());
|
|
||||||
// 将token信息放入header中
|
|
||||||
String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN);
|
|
||||||
if(token==null){
|
|
||||||
token = request.getParameter("token");
|
|
||||||
}
|
|
||||||
log.info("Feign request token: {}", token);
|
|
||||||
requestTemplate.header(CommonConstant.X_ACCESS_TOKEN, token);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return builder.target(clientClass, String.format("http://%s/", serviceName));
|
return builder.target(clientClass, String.format("http://%s/", serviceName));
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue