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();
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM