准备第二个资源服务器

集成feign
resource1
导包
开启feign
写接口-》打注解 加上调用的服务名字
拷贝r2的controller方法
在r1controller调用
访问resource 控制层测试
访问报错没有权限
通过feign接口访问r2没有权限
可以在r1添加feign拦截器添加token
但是微服务多了,每一个都要加拦截器
所以新建一个feign拦截器模块
在feign拦截 模块写一个类实现RequestInterceptor
实现apply方法 拦截请求
方法实现逻辑
1获取r1中请求头
使用请求助手方法获取请求上下文
在获取请求头
在去获取token
2把token加到请求头里面
template.head();
谁要使用就让谁依赖feign拦截模块
r1依赖 测试

集成熔断器

会造成的问题:转发失效,会那拿不到token 隔离模式,线程池导致请求头拿不到 把隔离模式改成信号量,

把线程一的token设置到线程二中

开启熔断器 创建托低方法

使用zuul统一鉴权

如果不去做zuul统一鉴权,那么每个微服务都会去集成auth2

并效率要高些,在zuul,发现没有权限直接打回,不用统一鉴权就要请求到微服务去效验更深一些。

zuul配置 导包

配置资源服务

新建一个类

使用jwt存储token

写一个内部类

复写两个方法

配置资源服务安全性配置

配置web安全配置

根据不同的服务配置权限的不同的范围

配置websecurity 因为zuul没有控制成

直接全部放行

跨域配置

通过zuul获取token

微服务远程调用的方式 微服务之间的调用权限_请求头


通过zuul访问资源

微服务远程调用的方式 微服务之间的调用权限_微服务远程调用的方式_02


zuul解析token后放在security上下文里面

转发用户信息 明文token

定义一个filter

复写三个方法

在run方法里面

使用map把信息封装到map中

权限需要转成list

在资源微服务中:

接收zuul 传过来token的filter定义

不用配置auth2但是要配置security,因为要知道当前用户有什么权限

auth全部放行,不做校验