HttpHeadersFilters

HttpHeadersFilters は、NettyRoutingFilter のように、リクエストを下流に送信する前に適用されます。

転送ヘッダーフィルター

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

フィルターは次のオプションパラメーターをサポートしています。

転送された "by" パラメーター

by パラメーターは、リクエストを受信したプロキシインターフェースを識別します。これは、マルチホッププロキシ環境におけるデバッグとトレースに役立ちます。by パラメーターを有効にするには、次のプロパティを設定します。

  • spring.cloud.gateway.server.webmvc.forwarded-by-enabled (デフォルトは false)

有効にすると、フィルターはサーバーのローカルアドレスとポートを Forwarded ヘッダーに追加します。例:

Forwarded: for="192.0.2.60:47011";proto=https;host="example.com:443";by="198.51.100.17:8080"
by パラメーターには、ポート番号が 0 より大きい場合にのみポート番号が含まれます。IPv6 アドレスは、括弧 で適切にフォーマットされます。

RemoveHopByHop ヘッダーフィルター

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

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

  • キープアライブ

  • プロキシ認証

  • プロキシ認証

  • TE

  • トレーラー

  • 転送エンコーディング

  • アップグレード

XForwarded ヘッダーフィルター

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

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

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

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

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

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

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

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

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

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

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

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

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