You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Spring Feign Client传递认证Bearer Token

实现Feign调用传递Bearer Token的几种方法

方法1:手动在Feign方法中传递请求头

直接在Feign接口的方法参数里添加@RequestHeader注解,调用时从当前请求中获取Token传入:

修改你的Feign接口:

@FeignClient("employee")
public interface EmployeeFeignClient {

    @RequestMapping(
        method= RequestMethod.GET,
        value="/employee/code/{code}",
        consumes="application/json"
    )
    EmployeeResponseEntity getEmployeeByCode(
        @PathVariable("code") String code,
        @RequestHeader("Authorization") String authorizationHeader
    );
}

调用时从当前请求获取Token:

// 注入HttpServletRequest获取当前请求头
@Autowired
private HttpServletRequest request;

public void queryEmployee(String empCode) {
    String bearerToken = request.getHeader("Authorization");
    employeeFeignClient.getEmployeeByCode(empCode, bearerToken);
}

方法2:全局Feign拦截器自动传递

通过实现RequestInterceptor,自动从当前请求上下文提取Token并添加到Feign请求头中,无需修改每个Feign方法:

创建拦截器类:

import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;

@Component
public class FeignAuthInterceptor implements RequestInterceptor {

    @Override
    public void apply(RequestTemplate template) {
        // 从请求上下文获取当前请求
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        if (attributes != null) {
            HttpServletRequest request = attributes.getRequest();
            String authToken = request.getHeader("Authorization");
            // 如果Token存在,添加到Feign请求头
            if (authToken != null) {
                template.header("Authorization", authToken);
            }
        }
    }
}

这个拦截器会被Spring自动识别,所有Feign调用都会自动带上当前请求的Authorization头。

注意事项

如果你的调用是在异步线程中执行,RequestContextHolder可能无法获取到请求上下文,此时需要手动传递请求属性,或者在异步方法中重新设置上下文。

内容的提问来源于stack exchange,提问作者Toji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:20:34