feign之间传递oauth2-token的问题和解决
发布时间:2019-07-03 18:29,
浏览次数:2186
, 标签:
feign
oauth
token
在微服务架构里,服务与服务之间的调用一般用feign就可以实现,它是一种可视化的rpc,并且集成了ribbon的负载均衡能力,所以很受欢迎。
授权服务
在授权服务里,用户通过用户名密码,或者手机和验证码等方式登陆之后,在http头里会有授权
的标识,在客户端调用时,需要添加当时有效的token才可以正常访问被授权的页面。
Content-Type:application/json Authorization:Bearer
d79c064c-8675-4047-a119-fac692e447e8
而在业务层里,服务与服务之间使用feign来实现调用,而授权的代码我们可以通过拦截器实现,在feign请求之前,把当前服务的token添加到目标服务的请求头就可以了,一般是这样实现的。
/** * 发送FeignClient设置Header信息. *
http://www.itmuch.com/spring-cloud-sum/hystrix-threadlocal/ *
Hystrix传播ThreadLocal对象 */ @Component public class TokenFeignClientInterceptor
implements RequestInterceptor { /** * token放在请求头. * * @param requestTemplate
<