阶段5 3.微服务项目【学成在线】_day18 用户授权_19-微服务之间认证-Feign 拦截器






4.2 Feign 拦截器
4.2.1 定义Feign拦截器
微服务之间使用feign进行远程调用,采用feign拦截器实现远程调用携带JWT。
在common工程添加依赖

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring‐cloud‐starter‐openfeign</artifactId>
</dependency>



拦截器

FeignClientInterceptor


实现接口,重写方法。feign每次远程调用都会调用apply这个方法

要做两件事

//使用RequestContextHolder工具获取request相关变量
ServletRequestAttributes attributes = (ServletRequestAttributes)
RequestContextHolder.getRequestAttributes();

获取所有的headers

在哪里用拦截器就在哪里定义Bean

在课程管理的spring boot的启动类里面

课程管理和cms服务都启动。








循环 走几次 才拿到了authorization





这里报错是因为要请求另外的微服务

这个是另外的微服务的地址。请求另外的微服务也需要携带令牌。


restTemplate需要想在请求之前携带令牌。




为了快速解决这个错误。我们把这个地址加入到不验证的规则里面


重新启动课程管理的服务



 

posted @ 2019-10-11 14:37  高山-景行  阅读(353)  评论(0编辑  收藏  举报