阶段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需要想在请求之前携带令牌。
为了快速解决这个错误。我们把这个地址加入到不验证的规则里面
重新启动课程管理的服务