openfeign服务间调用,获取初始请求的真实IP

步骤如下:

  • 在调用OpenFeign远程服务前,需要将HttpServletRequest对象注入到当前线程中,可以使用过滤器或拦截器来实现。以下是使用拦截器的示例代码:
public class FeignInterceptor implements RequestInterceptor {
    
    @Autowired
    private HttpServletRequest request;
  
    @Override
    public void apply(RequestTemplate template) {
        if (request != null) {
            template.header("X-Forwarded-For", request.getHeader("X-Real-IP"));
        }
    }
}
  • 在被调用的远程服务中,可以通过HttpServletRequest对象获取初始请求的真实IP,以下是示例代码:
@RequestMapping("/test")
public String test(HttpServletRequest request) {
    String ip = request.getHeader("X-Forwarded-For");
    return "The real IP is: " + ip;
}

其中,X-Forwarded-For是一种HTTP请求头,通常用于识别客户端的真实IP地址。在使用OpenFeign进行服务间调用时,需要将该头信息传递到远程服务中,以便获取初始请求的真实IP

你可能感兴趣的:(java,openfeign)