0

Spring Cloud Brixton.M5からBrixton.RC1に切り替える際に、私のZuulProxyはプロキシサービスの下流にAuthorizationヘッダーを渡さなくなりました。承認ヘッダーがBrixton.RC1から始まるZuulProxyによって渡されない

セットアップにはさまざまなアクターがありますが、ほとんどすべてがかなりシンプルです。 - AuthorizationServer:別々に実行されます。 JWTをクライアントに渡します - クライアント:OAuthサーバーからJWTを取得します。それぞれがリソースのサブセットにアクセスできます。 - ResourceServers:アクセス決定のためにJWTを消費します。 - MyZuulProxy:さまざまなリソースサーバーをプロキシします。 JWTを中継するべきです。

MyZuulProxyにはセキュリティの依存関係はありません。それは、受信したAuthorization: Bearer {JWT}ヘッダーを、RC1より前のResourceServersに渡しました。 MyZuulProxyは明示的にクライアント自体ではなく、現時点では@EnableOAuth2SSOなどを使用していません。

Spring Cloud Brixton.RC1を使用しているときにMyZuulProxyがJWTをResourceServersに再度中継するにはどうすればよいですか?

投稿するコードはほとんどありません。ちょうど@EnableZuulProxy,@EnableAuthorizationServer@EnableResourceServerの3種類のジャーにあります。私のクライアントはSpringアプリケーションではありません。

答えて

5

更新:固定

https://github.com/spring-cloud/spring-cloud-netflix/pull/963/filesで敏感なヘッダも zuul.sensitiveHeadersの設定グローバルに設定することができます。ルートに sensitiveHeadersが設定されている場合、これはグローバル sensitiveHeadersの設定を上書きします。

ので使用:

# Pass Authorization header downstream 
zuul: 
    sensitive-headers: Cookie,Set-Cookie 

のでjebeaudetは、回避策を提供するために、親切だった、https://github.com/spring-cloud/spring-cloud-netflix/issues/944の修正を保留:

グローバルsensitiveHeadersを設定
@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; 
} 
} 
+0

をどうもありがとう!この回避策はその仕事をします –

1

は私が解決する助け問題

zuul: 
    sensitiveHeaders: Cookie,Set-Cookie 

[私は春・クラウド・スターター・zuulバージョンを使用します。1.3.1.RELEASE]プロパティ名がsensitiveHeadersない敏感-ヘッダ であることに注意してください

関連する問題