微服务间feign调用token传递失败
在配置拦截器的地方添加拦截:
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
/**
* @apiNote feign传递token拦截统一处理
*/
@Component
public class TokenTelayRequestIntecepor implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
// 从header获取X-token
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
ServletRequestAttributes srat = (ServletRequestAttributes) requestAttributes;
HttpServletRequest request = srat.getRequest();
String token = request.getHeader("authorization");
if (StringUtils.isNotBlank(token)) {
//将token传递出去
requestTemplate.header("authorization", token);
}
}
}
文章介绍了如何在微服务架构中,使用Feign进行服务间调用时,通过实现RequestInterceptor来拦截请求,从header中获取X-token,并将其添加到目标请求的header中,确保Token的有效传递。当请求头中的authorization不为空时,会将token添加到新的请求模板中。

3591

被折叠的 条评论
为什么被折叠?



