CORS 構成

CORS の動作をグローバルに、またはルートごとに制御するようにゲートウェイを構成できます。どちらも同じ可能性を提供します。

グローバル CORS 構成

「グローバル」CORS 設定は、URL パターンの Spring Framework CorsConfiguration (Javadoc) へのマップです。次の例では、CORS を構成します。

application.yml
spring:
  cloud:
    gateway:
      globalcors:
        cors-configurations:
          '[/**]':
            allowedOrigins: "https://docs.spring.io"
            allowedMethods:
            - GET

前の例では、すべての GET リクエストパスに対して docs.spring.io から発信されたリクエストからの CORS リクエストが許可されています。

一部のゲートウェイルート述語によって処理されないリクエストに同じ CORS 構成を提供するには、spring.cloud.gateway.globalcors.add-to-simple-url-handler-mapping プロパティを true に設定します。これは、CORS プリフライトリクエストをサポートしようとしていて、HTTP メソッドが options であるためルート述語が true に評価されない場合に役立ちます。

ルート CORS 構成

「ルート」構成では、キー cors を持つメタデータとして CORS をルートに直接適用できます。グローバル構成の場合と同様に、プロパティは Spring Framework CorsConfiguration (Javadoc) に属します。

ルートに Path 述語が存在しない場合は、'/**' が適用されます。
application.yml
spring:
  cloud:
    gateway:
      routes:
      - id: cors_route
        uri: https://example.org
        predicates:
        - Path=/service/**
        metadata:
          cors:
            allowedOrigins: '*'
            allowedMethods:
              - GET
              - POST
            allowedHeaders: '*'
            maxAge: 30