Feign-----解决服务之间调用传递token问题

目录

  • 推荐公众号
  • 问题场景
  • 解决方法

推荐公众号

有彩蛋哦!!!(或者公众号内点击网赚获取彩蛋)
程序员探索之路

问题场景

今天和同学讨论了一个问题,在单体服务中调用一个接口时需要在Head里加token直接放在head里就行了,feign之间调用服务需要加token怎么办呢,解决办法实现RequestInterceptor接口

解决方法

在未配置之前报  qtjuaa /api/test 401
服务之间调用时 需要在头里面加入token
    定义RequestInterceptor
    public class FeignConfig implements RequestInterceptor {
        @Override
        public void apply(RequestTemplate requestTemplate) {
            ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
            HttpServletRequest request = attributes.getRequest();
            //添加token
            requestTemplate.header("Authorization", request.getHeader("Authorization"));
        }
    }
    调用方式
    @FeignClient(name = "qtjuaa", configuration = FeignConfig.class)
    public interface UaaClient {
        @RequestMapping(value = "/api/test", method= RequestMethod.GET)
        String test();
    }

你可能感兴趣的:(spring,cloud)