Spring Cloud Gateway - 从所有路由中删除请求标头,但只有一个

时间:2021-01-12 12:41:28

标签: spring spring-cloud spring-cloud-gateway

我正在为我们的应用程序使用 spring cloud gateway。我们需要从所有配置的路由中删除所有敏感标头。我是这样配置的-

spring:
  cloud:
    gateway:
      default-filters:
        #Remove All the sensitive request headers (Cookie, Set-Cookie & Authorization) while passing request to downstream services
        - RemoveRequestHeader=Cookie
        - RemoveRequestHeader=Set-Cookie
        - RemoveRequestHeader=Authorization

这是按预期工作的。现在我们需要将 Authorization 标头仅传递给其中一个路由。有没有办法配置它,这样我就不必在所有路由中添加 3 RemoveRequestHeader

我曾尝试专门为一条路由添加授权请求标头,但由于路由排序而无法正常工作。一旦请求标头被移除,就无法重新添加。

附言- 在迁移到 Spring Cloud Gateway 之前,我们一直在使用 Zuul,这是可行的。

1 个答案:

答案 0 :(得分:0)

默认过滤器是全有或全无。要执行您想要的操作,您需要将 RemoveRequestHeader 添加到每个需要它的路由中,从不需要它的路由中省略它。