Zuul过滤器未修改敏感标头“授权”

时间:2018-07-23 19:50:30

标签: netflix-zuul spring-cloud-netflix

我正在尝试使用zuul过滤器修改请求标头“授权”,但它没有发送已修改的标头,而是发送了从客户端收到的原始标头值。

我能够修改非敏感的自定义标头值,并看到zuul将其转发到下游服务。

authToken = getAuthToken(serviceResourceId);            
        String accessToken = "Bearer " + authToken;
                   ctx.addZuulRequestHeader("Authorization", accessToken);

我已禁用授权作为敏感标题

zuul:
  sensitiveHeaders: Cookie,Set-Cookie  
  routes:
    compute-client:      
      path: /client/**
      serviceId: clinet        
    compute-service:      
      path: /service/**
      serviceId: service

Zuul没有将上述修改后的Authorization标头发送到下游服务。它总是发送从请求中收到的原始Authorization标头。

我发现它会修改任何其他自定义标头,并将修改后的值发送给下游服务。

版本:

springBootVersion = '2.0.3.RELEASE'
dependencyManagement {
    imports { 
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.RELEASE"

    }
}
compile 'org.springframework.cloud:spring-cloud-starter-netflix-zuul'

我的其他发现是:

1)我已在网关服务上启用OAuth2,并且我正在授权标头中发送承载令牌以对网关服务进行身份验证,然后要根据正在谈论的下游服务对其进行修改。在这种情况下,下游服务会收到原始令牌,该令牌已发送到身份验证到网关服务

2)如果我禁用了网关服务的OAuth2并发送了承载令牌(现在不执行任何操作)并根据下游服务对其进行了修改,则下游服务会接收到已修改的令牌。

第一个场景就是问题,其中令牌已经用于身份验证,需要为下游服务进行修改。

0 个答案:

没有答案