配置 Fegin 拦截器解决微服务之间需要认证才能访问得问题
项目背景
Spring Cloud 项目,有前端,有后端,后端服务整合了 Cloud Security OAuth2 ,请求后端的服务需要携带认证信息,即请求头中需要携带” Authorization Bearer …“ 的Token 头信息。
后台微服务还存在服务之间采用 Fegin 的调用,在前端请求后端时,是携带 Token,可以正常请求响应的,但是当微服务之间调用时,报:
1 | { |
调用关系简图:

这是因为微服务之间的调用默认是不携带 令牌 Token 导致的(令牌信息存在 Authorization 请求头中),如果要传递 header 信息,可以采用 Fegin拦截器实现。
Fegin 拦截器
可以在 Common 项目中定义一个 Fegin 拦截器:
1 |
|
回到项目简图,因为 ”微服务1“ 调用 ”微服务2“,所以只要在 ”微服务1“ 中装载该 Fegin 拦截器即可:
1 |
|
- Title: 配置 Fegin 拦截器解决微服务之间需要认证才能访问得问题
- Author: 薛定谔的汪
- Created at : 2018-10-20 13:20:16
- Updated at : 2023-11-17 19:37:36
- Link: https://www.zhengyk.cn/2018/10/20/springcloud/fegin-interceptor/
- License: This work is licensed under CC BY-NC-SA 4.0.