package com.xxx.common.interceptor;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.stereotype.Component;
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;
import java.util.Enumeration;
@Component
public class FeignInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
//传递令牌
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
if (requestAttributes != null){
HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
if (request != null){
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()){
String headerName = headerNames.nextElement();
if ("authorization".equals(headerName)){
String headerValue = request.getHeader(headerName); // Bearer jwt
//传递令牌
requestTemplate.header(headerName,headerValue);
}
}
}
}
}
}
FeignInterceptor-Feign拦截器
最新推荐文章于 2025-04-27 14:39:40 发布
该代码实现了一个Feign拦截器,用于在请求模板中添加授权头。它利用Spring的RequestContextHolder获取HttpServletRequest,遍历请求头,找到authorization头并将其值添加到Feign请求中,以便在服务间调用时传递令牌。

2221

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



