如何在Zalando Skipper过滤器中用正则配置可选Cookie白名单
需求背景
需要通过正则修改Cookie请求头,避免发送过多Cookie导致服务器因请求头过大直接丢弃请求。不需要丢弃全部Cookie,仅保留authorization Cookie,但并非所有请求都会携带该Cookie。
示例场景
- 示例Cookie A(携带
authorization):foo=bar;authorization=jwt;more=bla - 示例Cookie B(不携带
authorization):foo=bar;more=bla
原有配置及问题
当前使用的Zalando Skipper过滤器配置如下:
zalando.org/skipper-filter: modRequestHeader("Cookie", "^(.*)(authorization=.[^;]+;)(.*)$", "$2")
该配置在示例A场景下可正常生效,但在示例B场景下会返回全部Cookie而非空值,不符合需求。
最终适配方案
调整正则后可同时适配两种场景,不存在authorization Cookie时会将Cookie头置空,同时也规避了单个保留Cookie末尾多余分号的问题:
zalando.org/skipper-filter: modRequestHeader("Cookie", "^(?:(.*)(authorization=[^;]+)(.*)|.+)$", "$2")
内容的提问来源于stack exchange,提问作者Michael van de Waeter
相关产品推荐
相关产品推荐

