ZuulProxy未从Brixton.RC1开始传递授权标头

Tim*_*Tim 8 java spring-security-oauth2 spring-cloud spring-cloud-netflix

从Spring Cloud切换Brixton.M5Brixton.RC1我的ZuulProxy时,不再将Authorization标头下游传递给我的代理服务.

在我的设置中有各种各样的演员,但大多数都非常简单: - AuthorizationServer:单独运行; 向客户发放JWT - 客户:从OAuth服务器获取JWT; 每个人都可以访问一部分资源. - ResourceServers:使用JWT进行访问决策 - MyZuulProxy:代理各种资源服务器; 应该转发JWT.

应该注意的是,MyZuulProxy没有任何安全依赖性; 它将Authorization: Bearer {JWT}它收到的头传递给ResourceServers,前RC1.MyZuulProxy显然不是客户端本身,目前不使用@EnableOAuth2SSO或类似.

在使用Spring Cloud Brixton.RC1时,如何让MyZuulProxy再次将JWT中继到ResourceServers?

有很少的代码后:这只是@EnableZuulProxy,@EnableAuthorizationServer@EnableResourceServer在三个不同的罐子.我的客户端不是Spring应用程序.

Tim*_*Tim 20

更新:已在https://github.com/spring-cloud/spring-cloud-netflix/pull/963/files中修复

敏感标题也可以设置为全局设置zuul.sensitiveHeaders.如果sensitiveHeaders在路线上设置,则将覆盖全局sensitiveHeaders设置.

所以使用:

# Pass Authorization header downstream
zuul:
  sensitiveHeaders: Cookie,Set-Cookie
Run Code Online (Sandbox Code Playgroud)

因此,在修复https://github.com/spring-cloud/spring-cloud-netflix/issues/944之前,jebeaudet非常友好地提供了一种解决方法:

@Component
public class RelayTokenFilter extends ZuulFilter {

    @Override
    public Object run() {
        RequestContext ctx = RequestContext.getCurrentContext();

        // Alter ignored headers as per: https://gitter.im/spring-cloud/spring-cloud?at=56fea31f11ea211749c3ed22
        Set<String> headers = (Set<String>) ctx.get("ignoredHeaders");
        // We need our JWT tokens relayed to resource servers
        headers.remove("authorization");

        return null;
    }

    @Override
    public boolean shouldFilter() {
        return true;
    }

    @Override
    public String filterType() {
        return "pre";
    }

    @Override
    public int filterOrder() {
        return 10000;
    }
}
Run Code Online (Sandbox Code Playgroud)


Abh*_*ash 10

全局设置sensitiveHeaders帮我解决了这个问题

 zuul:
  sensitiveHeaders: Cookie,Set-Cookie
Run Code Online (Sandbox Code Playgroud)

请注意,属性名称是sensitiveHeaders not sensitive-headers [我使用spring-cloud-starter-zuul version:1.3.1.RELEASE]