spring cloud各个微服务之间如何相互调用(Feign、Feign带token访问服务接口)

摘要:
3.如果其他服务有权限,如何访问它们的接口?

1、首先先看什么是Feign。

这里引用“大漠知秋”的博文https://blog.csdn.net/wo18237095579/article/details/83343915

2、若其他服务的接口未做权限处理,参照上文第1点的博文即可。

3、若其他服务的接口做了权限的处理(例如OAuth 2)时该如何访问?

a、有做权限处理的服务接口直接调用会造成调用时出现http 401未授权的错误,继而导致最终服务的http 500内部服务器错误

b、解决方式:最方便的就是往请求头里加上token,一起带过去;

b1、Feign有提供一个接口,RequestInterceptor;只要实现这个接口,简单做一些处理,比如说我们验证请求头的token叫Access-Token,我们就先取出当前请求的token,然后放到feign请求头上;

b2、新建配置类

  1. @Configuration
  2. publicclassFeignConfigimplementsRequestInterceptor{
  3. @Override
  4. publicvoidapply(RequestTemplate requestTemplate){
  5. ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
  6. HttpServletRequest request = attributes.getRequest();
  7. requestTemplate.header(HttpHeaders.AUTHORIZATION, request.getHeader(HttpHeaders.AUTHORIZATION));
  8. }
  9. }

b3、在@FeignClient接口里添加configuration = {FeignConfig.class}

@FeignClientvalue="被调用的服务名",configuration={FeignConfig.class})

即可对做权限处理的服务接口进行调用

1、首先先看什么是Feign。 这里引用“大漠知秋”的博文https://blog.csdn.net/wo18237095579/article/details/83343915
[1, Shǒuxiān xiān kàn shénme shì Feign. Zhèlǐ yǐnyòng “dàmò zhī qiū” de bówén https://Blog.Csdn.Net/wo18237095579/article/details/83343915]
spring cloud各个微服务之间如何相互调用(Feign、Feign带token访问服务接口)第1张
1. First look at what is Feign.

Here is a quote on "Da Mo Zhiqiu" https://blog.csdn.net/wo18237095579/article/details/83343915
 

免责声明:文章转载自《spring cloud各个微服务之间如何相互调用(Feign、Feign带token访问服务接口)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇文件上传漏洞(绕过姿势)iOS开启隐藏文件以及显示文件方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Gitlab--安装及汉化

简介 gitlab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git 项目仓库,可通过Web界面迚行访问公开的戒者私人项目。Ruby on Rails 是一个可以使你开发、部署、维护 web 应用程序变得简单的框架。GitLab 拥有与Github 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常...

GitHub上优秀的Go开源项目

2014年11月,Golang官方博客发布Go语言核心开发组成员Andrew Gerrand文章 《Half a decade with Go》,以纪念Go语言发布5周年。Andrew Gerrand在文章中称,Go语言在工业界向云计算转型时代找到了自己的位置,目前一些重量级的云计算项目比如有名的Docker等都是用Go语言开发的,并预言“2015年将是G...

Springboot配置https访问

介绍 该篇博文主要介绍如何配置Springboot使其打包部署的服务必须通过HTTPS协议才可访问,仅供内部研究使用。 生成https证书 要使用https,首先需要ssl证书,获取SSL证书有两种方式: 自己通过keytool生成 通过证书授权机构购买 这里本地测试使用,通过keytool生成,方式如下 C:Usersfeifuzeng>key...

AWTK 中 LCD 接口的四种实现方式

LCD 接口的四种实现方式 LCD 是对显示设备的抽象,提供了基本的绘图函数。自己去实现 LCD 接口虽然不难,但是需要花费不少功夫,AWTK 提供了几种缺省的实现,利用这些缺省的实现,在移植到新的平台时,一般只需要很少的代码就行了。 下面我们介绍一下几种常见的 LCD 实现方式: 一、基于寄存器实现的 LCD 在低端的嵌入式平台上,内存只有几十 KB...

linux网络配置(ifcfg)

将linux主机接入到网络需要配置哪些配置项?   IP/NETMASK:本地通信。   路由(网管):跨网络通信。   DNS服务器地址:基于主机名通信。     DNS服务器有三种:主/备用DNS服务器/第三备份dns服务器。     DNS服务器指定需要修改配置文件/etc/resolv.conf     主机名配置:修改/etc/sysconfig...

live-server使用指南

一、安装 npm -g install live-server 二、配置 --port=NUMBER` - 选择要使用的端口,默认值:PORT env var或8080--host=ADDRESS` - 选择要绑定的主机地址,默认值:IP env var或0.0.0.0(“任意地址”)--no-browser` - 禁止自动Web浏览器启动--browse...