您可以在同一系统中的服务之间共享标头,但您可能不希望敏感标头向下游泄漏到外部服务器。 您可以在路由配置中指定忽略的标头列表。 Cookie起着特殊的作用,因为它们在浏览器中具有良好定义的语义,并且它们始终被视为敏感。 如果您的代理的消费者是浏览器,那么下游服务的cookie也会给用户带来问题,因为它们都混杂起来(所有下游服务看起来都来自同一个地方)。
如果您对服务的设计非常小心(例如,如果只有一个下游服务设置了cookie),您可以让它们从后端一直流到调用者。 此外,如果您的代理设置了cookie并且所有后端服务都是同一系统的一部分,那么简单地共享它们就很自然(例如,使用Spring Session将它们链接到某个共享状态)。 除此之外,由下游服务设置的任何cookie都可能对调用者没用,因此建议您(至少)将Set-Cookie和Cookie设置为不属于您的域的路由的敏感标头。 即使是属于您域名的路由,也要在让cookie和代理之间流动之前仔细考虑它的含义。
可以将敏感标头配置为每个路由的逗号分隔列表,如以下示例所示:
```
zuul:
routes:
users:
path: /myusers/**
sensitiveHeaders: Cookie,Set-Cookie,Authorization
url: https://downstream
```
>这是sensitiveHeaders的默认值,因此除非您希望它不同,否则无需进行设置。 这是Spring Cloud Netflix 1.1中的新功能(在1.0中,用户无法控制标题,并且所有Cookie都在两个方向上流动)。
`sensitiveHeaders`是黑名单,默认不为空。 因此,要使Zuul发送所有标头(忽略的标头除外),您必须将其明确设置为空列表。 如果要将cookie或授权标头传递到后端,则必须这样做。 以下示例显示了如何使用`sensitiveHeaders`:
```
zuul:
routes:
users:
path: /myusers/**
sensitiveHeaders:
url: https://downstream
```
您还可以通过设置`zuul.sensitiveHeaders`来设置敏感标头。 如果在路由上设置了`sensitiveHeaders`,它将覆盖全局`sensitiveHeaders`设置
- 快速开始
- I.云原生应用
- II. Spring Cloud配置
- III. Spring Cloud Netflix
- 11 服务发现:Eureka客户端
- 11.1 如何引入eureka客户端
- 11.2 注册eureka
- 12.3 使用Eureka服务端的身份验证
- 11.4状态页面和健康指标
- 11.5 注册一个安全的应用
- 11.6 eureka的监控检查
- 11.7 eureka实例和客户端的元数据
- 11.8 使用eureka客户端
- 11.8.1 不使用Jersey的eureka client
- 11.9 可选的原生 Netflix EurekaClient
- 11.10 为什么注册服务这么慢
- 11.11 区域
- 12.服务发现:Eureka 服务端
- 12.1 如何引入 Eureka server
- 12.2 如何运行Eureka Server
- 12.3 高可用性和时区,区域
- 12.4 独立模式
- 12.5 对等意识
- 12.6 什么时候使用ip地址
- 12.7 保护eureka服务
- 13.断路器:Hystrix客户端
- 14 断路器:Hystrix仪表板
- 15. Hystrix 超时和Ribbon 客户端
- 16 客户端负载均衡:ribbon
- 17 外部配置:Archaius
- 18. 路由和过滤
- 18.1 如何引入zuul
- 18.2 嵌入式Zuul反向代理
- 18.3 Zuul Http Client
- 18.4 Cookies和敏感标题
- 18.5忽略的标题
- 18.6管理端点
- 18.6.1 路由端点
- 19. Polyglot 支持Sidecar
- 20 重试失败的请求
- 21 HTTP Client
- IV. Spring Cloud OpenFeign
- V. Spring Cloud Stream
- VI. Binder Implementations
- VII. Spring Cloud Bus
- VIII. Spring Cloud Sleuth
- IX. Spring Cloud Consul
- X. Spring Cloud Zookeeper
- XI. Spring Boot Cloud CLI
- XII. Spring Cloud Security
- XIII. Spring Cloud for Cloud Foundry