OpenFeign服务调用时携带Token

OpenFeign服务调用时携带Token:

  场景:众所周知,OpenFigen主要的作用是替我们发送Http请求的,那么在有些场景中,需要在OpenFiegn中携带Token到另一个服务去,需要配置一个Fegin的配置类完成此操作

  • 第一步创建FeginClient的配置类
package cn.woniu.yyyservice.nacosconfig;

import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: hui
 * @Date: 2021/12/05/17:33
 * @Description:
 */
@Configuration
public class FeignConfiguration implements RequestInterceptor {

    @Override
    public void apply(RequestTemplate requestTemplate) {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        requestTemplate.header("jwt-Token", request.getHeader("jwt-Token"));
    }

}
  •  在@FeginClient注解添加Configuration
package cn.woniu.yyyservice.client;

import cn.woniu.yyyservice.nacosconfig.FeignConfiguration;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: hui
 * @Date: 2021/12/05/15:49
 * @Description:
 */
@FeignClient(name = "xxx-service", fallback = XxxFallBackServiceClientImpl.class, configuration = FeignConfiguration.class)
public interface XxxServiceClient {

    @RequestMapping("/all-can-do")
    public String demo7();

    @RequestMapping("/")
    public String index();
}

 

posted @ 2021-12-06 12:58  *山山_而川  阅读(2233)  评论(0)    收藏  举报