/* * Copyright (c) 2018-2028, DreamLu All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: DreamLu 卢春梦 (596392912@qq.com) */ package org.springblade.core.cloud.feign; import feign.RequestInterceptor; import feign.RequestTemplate; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.utils.ThreadLocalUtil; import org.springframework.http.HttpHeaders; /** * feign 传递Request header * *
* https://blog.csdn.net/u014519194/article/details/77160958 * http://tietang.wang/2016/02/25/hystrix/Hystrix%E5%8F%82%E6%95%B0%E8%AF%A6%E8%A7%A3/ * https://github.com/Netflix/Hystrix/issues/92#issuecomment-260548068 *
* * @author L.cm */ public class BladeFeignRequestInterceptor implements RequestInterceptor { @Override public void apply(RequestTemplate requestTemplate) { HttpHeaders headers = ThreadLocalUtil.get(BladeConstant.CONTEXT_KEY); if (headers != null && !headers.isEmpty()) { headers.forEach((key, values) -> values.forEach(value -> requestTemplate.header(key, value)) ); } } }