public class ForwardedHeaderTransformer extends ObjectSE implements FunctionSE<ServerHttpRequest,ServerHttpRequest>
HttpRequest.getURI()
)をオーバーライドし、クライアントが発信したプロトコルとアドレスを反映するようにします。 このクラスのインスタンスは通常、"forwardedHeaderTransformer" という名前の Bean として宣言され、WebHttpHandlerBuilder.applicationContext(ApplicationContext)
によって検出されます。または、WebHttpHandlerBuilder.forwardedHeaderTransformer(ForwardedHeaderTransformer)
を介して直接登録することもできます。
アプリケーションは、ヘッダーが意図したとおりにプロキシによって追加されたのか、悪意のあるクライアントによって追加されたのかを知ることができないため、転送されたヘッダーにはセキュリティ上の考慮事項があります。これが、信頼の境界にあるプロキシを構成して、外部からの信頼できない転送ヘッダーを削除する必要がある理由です。
ForwardedHeaderFilter を removeOnly
で構成することもできます。その場合、ヘッダーは削除されますが、使用されません。
コンストラクターと説明 |
---|
ForwardedHeaderTransformer() |
修飾子と型 | メソッドと説明 |
---|---|
ServerHttpRequest | apply(ServerHttpRequest request) Forwarded 型のヘッダーを適用および削除、または削除します。 |
protected boolean | hasForwardedHeaders(ServerHttpRequest request) リクエストに Forwarded ヘッダーがあるかどうか。 |
boolean | isRemoveOnly() 「削除のみ」モードがオンかどうか。 |
void | setRemoveOnly(boolean removeOnly) "Forwarded" または "X-Forwarded-*" ヘッダーのみが削除され、それらの情報が無視されるモードを有効にします。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
andThenSE, composeSE, identitySE
public void setRemoveOnly(boolean removeOnly)
removeOnly
- 転送されたヘッダーを破棄して無視するかどうか public boolean isRemoveOnly()
public ServerHttpRequest apply(ServerHttpRequest request)
FunctionSE<ServerHttpRequest, ServerHttpRequest>
の applySE
request
- リクエスト protected boolean hasForwardedHeaders(ServerHttpRequest request)
request
- リクエスト