HttpHeadersFilters

HttpHeadersFilters は、NettyRoutingFilter などでリクエストをダウンストリームに送信する前にリクエストに適用されます。

転送ヘッダーフィルター

Forwarded ヘッダーフィルターは、下流のサービスに送信する Forwarded ヘッダーを作成します。このフィルターは、現在のリクエストの Host ヘッダー、スキーム、ポートを既存の Forwarded ヘッダーに追加します。このフィルターを有効にするには、spring.cloud.gateway.server.webflux.trusted-proxies プロパティに Java 正規表現を設定します。この正規表現は、Forwarded ヘッダーに出現する際に信頼されるプロキシを定義します。

Forwarded by ヘッダー部分は、次のプロパティを true に設定することで有効にできます (デフォルトは false)。

  • spring.cloud.gateway.server.webflux.forwarded.by.enabled=true

RemoveHopByHop ヘッダーフィルター

RemoveHopByHop ヘッダーフィルターは、転送されたリクエストからヘッダーを削除します。削除されるヘッダーのデフォルトリストは、IETF (英語) からのものです。

デフォルトで削除されるヘッダーは次のとおりです。
  • 接続

  • キープアライブ

  • プロキシ認証

  • プロキシ認証

  • TE

  • トレーラー

  • 転送エンコーディング

  • アップグレード

これを変更するには、spring.cloud.gateway.server.webflux.filter.remove-hop-by-hop.headers プロパティを削除するヘッダー名のリストに設定します。

XForwarded ヘッダーフィルター

XForwarded ヘッダーフィルターは、下流のサービスに送信する様々な X-Forwarded-* ヘッダーを作成します。このフィルターは、現在のリクエストの Host ヘッダー、スキーム、ポート、パスを使用して、様々なヘッダーを作成します。このフィルターを有効にするには、spring.cloud.gateway.server.webflux.trusted-proxies プロパティに Java 正規表現を設定します。この正規表現は、Forwarded ヘッダーに出現する際に信頼されるプロキシを定義します。

個々のヘッダーの作成は、次のブールプロパティ(デフォルトは true)によって制御できます。

  • spring.cloud.gateway.server.webflux.x-forwarded.for-enabled

  • spring.cloud.gateway.server.webflux.x-forwarded.host-enabled

  • spring.cloud.gateway.server.webflux.x-forwarded.port-enabled

  • spring.cloud.gateway.server.webflux.x-forwarded.proto-enabled

  • spring.cloud.gateway.server.webflux.x-forwarded.prefix-enabled

複数のヘッダーの追加は、次のブールプロパティ(デフォルトは true)によって制御できます。

  • spring.cloud.gateway.server.webflux.x-forwarded.for-append

  • spring.cloud.gateway.server.webflux.x-forwarded.host-append

  • spring.cloud.gateway.server.webflux.x-forwarded.port-append

  • spring.cloud.gateway.server.webflux.x-forwarded.proto-append

  • spring.cloud.gateway.server.webflux.x-forwarded.prefix-append