微服务(七)-服务网关zuul(三)

简介: 微服务(七)-服务网关zuul(三)

自定义路由

首先提出一个疑问:比如说前端访问的时候必须要带某个参数过来,

比如必须要带某个token过来的话,不管放到头里也好,或者参数里也好。

否则认为这个访问就是违法的。

1、在网关中的过滤器类型filterType中总共有四种类型:①、pre(前置过滤器),②、post(后置过滤器),③、route(路由过滤器),④、error(错误过滤器)

1.1、既然做的是token的验证,是放到前置过滤器中的,代码如下:

1.2、在源代码FilterConstants这个类中有这四种类型的路由。  数字越小,优先级就越高。优先级一定要放置在最后一个前置路由器之前就可以了。官方推荐不是PRE_DECORATION_FILTER_ORDER把这个值改为多些,而是在这个值上进行加减法,一般做减法就行了。

1.3、减一代表在这个路由器之前执行,代码如下:

1.4、第三个方法:是否允许路由,去监控它true,代表一定要监控得

1.5、第四个方法 run:核心方法,思路如下:


①、我们需要从参数里面去拿到这个token得值,如果传了,就是合法得正常得请求得地址。

②、如果没传,就是不合法的请求

1.6、CookieUtil的代码如下:

1.7、交给Spring容器去管理。

1.8、然后把配置中心config启动起来,和服务网关启动,不带token的去访问:前置过滤器的成功了:只要没有token的访问都属于不正常的访问。

1.9、如果想通过话,加上cookie就可以了:

2、还有后置路由器:比如当它有结果返回出来时候,我想要在头里面加点头信息。然后给它做返回,那么我们如何去写呢?

2.1、当请求处理完,当响应结果之前过滤器就称之为后置过滤器。

比如在token验证以后将返回的结果响应头里面加点数据进去:比如加一个随机token值给它返回出去或者UUID值。这个过滤器是在发送请求响应到响应头里过滤器。

2.3、在源代码中,SEND_RESPONSE_FILTER_ORDER这个值是最大值,后置过滤器需要在它之前执行,所以减一。

2.4、重启下user-api-gateway:这个POST得意思只是后置得过滤器,不管什么类型得请求,这个请求头得信息都是有X-UUID得,这个和POST请求是没有关系的。

总结:在zuul中可以做很多的事情,特别在做鉴权上用的很多,权限校验,可以做一个token得判断,权限得校验也可以在zuul里面去写。

相关文章
|
10月前
|
负载均衡 应用服务中间件 API
微服务技术系列教程(25) - SpringCloud- 接口网关服务Zuul
微服务技术系列教程(25) - SpringCloud- 接口网关服务Zuul
146 0
|
监控 负载均衡 安全
解密微服务之Zuul
当今互联网世界中,微服务架构已经成为了一种流行的架构方式,它有助于构建可伸缩、灵活和可维护的应用程序。然而,随着微服务数量的增加,管理它们之间的通信和路由变得越来越复杂。这就是Netflix开发的Zuul微服务网关出现的背景。本文将详细介绍Zuul微服务网关,探讨其作用、功能以及如何在微服务架构中使用它。
|
12小时前
|
负载均衡 前端开发 安全
微服务(六)-服务网关zuul(二)
微服务(六)-服务网关zuul(二)
|
12小时前
|
测试技术 微服务
微服务(八)-服务网关zuul(四)
微服务(八)-服务网关zuul(四)
|
13小时前
|
监控 负载均衡 安全
微服务(五)-服务网关zuul(一)
微服务(五)-服务网关zuul(一)
|
1月前
|
安全 前端开发 Java
微服务网关及其配置
微服务网关及其配置
82 4
|
4月前
|
XML 前端开发 JavaScript
【微服务】6、一篇文章学会使用 SpringCloud 的网关
【微服务】6、一篇文章学会使用 SpringCloud 的网关
135 0
|
监控 安全 前端开发
GateWay微服务网关的搭建
GateWay微服务网关的搭建
203 0
|
缓存 负载均衡 监控
微服务 @SentinelResource 服务网关
微服务 @SentinelResource 服务网关
67 0