2016-06-25 18 views
1

私はcountry-serviceと呼ばれるoAuth2を使って保護されたマイクロサービスを持っています。ZuulプロキシoAuth2春のブートで無許可

enter image description here

server: 
    port: 8081 

spring: 
    database: 
    driverClassName: org.postgresql.Driver 
    datasource: 
    url: jdbc:postgresql://localhost:5432/vue-boot-country 
    username: postgres 
    password: postgres 
    jpa: 
    hibernate: 
     ddl-auto: validate 
    database-platform: org.hibernate.dialect.PostgreSQLDialect 

eureka: 
    client: 
    serviceUrl: 
     defaultZone: http://localhost:8761/eureka/ 

私はまた、API-ゲートウェイ(Zuulプロキシ)を持つ:

@SpringBootApplication 
@EnableEurekaClient 
@EnableZuulProxy 
public class VueBootApiGatewayApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(VueBootApiGatewayApplication.class, args); 
    } 
} 

なし私は直接トークンすべての作品私のJWTベアラーなど、このサービスにリクエストを送信するとこれら2つ以外のファイル

server: 
    port: 8765 

eureka: 
    client: 
    serviceUrl: 
     defaultZone: http://localhost:8761/eureka/ 

zuul: 
    routes: 
    vue-boot-country-service: /api/country/** 
    add-proxy-headers: true 

プロには正常なリクエストを送信できませんXY、私は「不正な」エラーを取得しておいてください。

enter image description here

注:私は、リソースサーバからのOAuth2のセキュリティを削除するとZuulプロキシが動作しているようです。

ここで間違っていることを誰かが知っていますか?

答えて

4

これは、「承認」のような「機密」ヘッダーと呼ばれるzuulsと関係があります。ヘッダーを設定することは、すでにこれだけの構成で作業している場合、これらは

...内側に渡されたすべての要求のためにフィルタリングされ、私は、知らない:

zuul: 
    ignoredHeaders: 
    - authorization 

ない場合、あなたはZuulを定義することができますこれを手動で管理するために豆をフィルタリング:

@Component 
public class RelayTokenFilter extends ZuulFilter{ 
    @Override 
    public String filterType() { 
     return "pre"; 
    } 

    @Override 
    public int filterOrder() { 
     return 10000; 
    } 

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

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

     @SuppressWarnings("unchecked") Set<String> ignoredHeaders = (Set<String>) context.get("ignoredHeaders"); 
     ignoredHeaders.remove("authorization"); 

     return null; 
    } 
} 
+0

私はフィルタを実装し、それは私が同じ質問に会った今 – Jdruwe

+0

に動作し、それは素晴らしいことです! –

関連する問題