SpringCloud-Gateway(谓词Host、Cookie)

163 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第8天,点击查看活动详情

谓词Host

谓词Host的作用是用于匹配请求参数中host参数的值,满足 Ant 模式时可以使用,它的使用方式如下:
? 表示匹配一个字符\

  • 表示匹配 0 个或者多个字符
    ** 表示匹配 0 个或 多个目录

例如以下这样的配置: image.png

地址配置的是 127.0.0.1:9000 ,如果是可以允许多个端口那么可以配置成 127.0.0.1:* 这样表示该ip下任意端口号都允许。

谓词Cookie

这个类似于与 host,就是把请求中 host 和 cookie 单独拎出来了,它可以要求请求中包含指定的 Cookie 名 和 满足特定正则要求的值。
Cookie 它是必须要有两个值、第一个是 Cookie 中包含的参数名,第二个是 Cookie 中包含的对应值,因为通常 Cookie 都是以键值对的形式表示,那么配置的时候就是配置的 key,value 的形式。
例如以下这样进行配置

image.png

同样的可以使用 * 号作为通配符,这样进行配置那么只要 Cookie 中携带 age 不管值是什么都可以正常请求访问
如果当我们把 Cookie 配置成以下这样,那么直接通过浏览器就没办法访问

image.png

这个时候我们想要正常访问,要么通过程序去访问,但是现在我们只是作为测试,那么可以通过模拟请求的工具进行访问,这里使用的是 postman \

image.png

点击 Cookies 进行设置 Cookie 的 value 作为一个三位的字符串

image.png

然后再进行模拟请求会发现是可以请求成功了,但当 cookie 的 value 不是为三位的字符串就不会访问,Gateway 不会正常的转发请求。