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