クラス ForwardedHeaderTransformer

java.lang.ObjectSE
org.springframework.web.server.adapter.ForwardedHeaderTransformer
実装されたすべてのインターフェース:
FunctionSE<ServerHttpRequest,ServerHttpRequest>

public class ForwardedHeaderTransformer extends ObjectSE implements FunctionSE<ServerHttpRequest,ServerHttpRequest>
"Forwarded" および "X-Forwarded-*" ヘッダーから値を抽出して、リクエスト URI(つまり HttpRequest.getURI())をオーバーライドし、クライアントが発信したプロトコルとアドレスを反映するようにします。

このクラスのインスタンスは通常、"forwardedHeaderTransformer" という名前の Bean として宣言され、WebHttpHandlerBuilder.applicationContext(ApplicationContext) によって検出されます。または、WebHttpHandlerBuilder.forwardedHeaderTransformer(ForwardedHeaderTransformer) を介して直接登録することもできます。

アプリケーションは、ヘッダーが意図したとおりにプロキシによって追加されたのか、悪意のあるクライアントによって追加されたのかを知ることができないため、転送されたヘッダーにはセキュリティ上の考慮事項があります。これが、信頼の境界にあるプロキシを構成して、外部からの信頼できない転送ヘッダーを削除する必要がある理由です。

ForwardedHeaderFilter を removeOnly で構成することもできます。その場合、ヘッダーは削除されますが、使用されません。

導入:
5.1
作成者:
Rossen Stoyanchev
関連事項:
  • コンストラクターの詳細

    • ForwardedHeaderTransformer

      public ForwardedHeaderTransformer()
  • メソッドの詳細

    • setRemoveOnly

      public void setRemoveOnly(boolean removeOnly)
      "Forwarded" または "X-Forwarded-*" ヘッダーのみが削除され、それらの情報が無視されるモードを有効にします。
      パラメーター:
      removeOnly - 転送されたヘッダーを破棄して無視するかどうか
    • isRemoveOnly

      public boolean isRemoveOnly()
      「削除のみ」モードがオンかどうか。
      関連事項:
    • apply

      public ServerHttpRequest apply(ServerHttpRequest request)
      Forwarded 型のヘッダーを適用および削除、または削除します。
      次で指定:
      インターフェース FunctionSE<ServerHttpRequest,ServerHttpRequest>applySE 
      パラメーター:
      request - リクエスト
    • hasForwardedHeaders

      protected boolean hasForwardedHeaders(ServerHttpRequest request)
      リクエストに Forwarded ヘッダーがあるかどうか。
      パラメーター:
      request - リクエスト