クラス 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
- 関連事項:
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明apply
(ServerHttpRequest request) Forwarded 型のヘッダーを適用および削除、または削除します。protected boolean
hasForwardedHeaders
(ServerHttpRequest request) リクエストに Forwarded ヘッダーがあるかどうか。boolean
「削除のみ」モードがオンかどうか。void
setRemoveOnly
(boolean removeOnly) "Forwarded" または "X-Forwarded-*" ヘッダーのみが削除され、それらの情報が無視されるモードを有効にします。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース java.util.function.FunctionSE から継承されたメソッド
andThenSE, composeSE
コンストラクターの詳細
ForwardedHeaderTransformer
public ForwardedHeaderTransformer()
メソッドの詳細
setRemoveOnly
public void setRemoveOnly(boolean removeOnly) "Forwarded" または "X-Forwarded-*" ヘッダーのみが削除され、それらの情報が無視されるモードを有効にします。- パラメーター:
removeOnly
- 転送されたヘッダーを破棄して無視するかどうか
isRemoveOnly
public boolean isRemoveOnly()「削除のみ」モードがオンかどうか。apply
Forwarded 型のヘッダーを適用および削除、または削除します。- 次で指定:
- インターフェース
FunctionSE<ServerHttpRequest,
のServerHttpRequest> applySE
- パラメーター:
request
- リクエスト
hasForwardedHeaders
リクエストに Forwarded ヘッダーがあるかどうか。- パラメーター:
request
- リクエスト