呼び出し者のクエリバイトを 2 回エンコーディングするのではなく転送します

FixAPIService
出荷済み
2026年8月7日 4:07 UTC
プロフィール
Kamo
コンテンツ
3c24d32

全ての URL は getRequestURI() と getRequestURI() からビルドされます。 getQueryString() — 両方とも既にパーセントエンコード済みで、 RestTemplate を文字列として書きます。 RestTemplate の String のオーバーロードは URL を呼びません。 RestTemplate の DefaultUriBuilderFactory によって展開される URI TEMPLATE を取り、 EncodingMode.URI COMPONENT で設定します。 そのモードはすべてのコンポーネントをエンコードし、 '%' は pchar ではないので、既存のエスケープが再びエスケープされた: %252C は %252C のまま。 上流サービスは一度解読し、リテラルトークンA%2CBを受け取った - 1 呼び出し側が2つ送信した値。 Forward()は、すべての人のための単一のファネルです /api/<x>/** ルート、 /api/docs、 /api/security、 /api/kb、 /api/media および rest 一度にすべての影響を受けました。予約されていない文字の値は固定点です。 それは断続的かつ簡単に見逃すことにしたものです。 toUpstreamUri() は URL と exchange() の URI のオーバーロードをパスします。 テンプレートハンドラは完全に、バイトはホップを非接触に交差させます。 単純に URI.create への変更は行いません。 そのメソッドは、 URIに違法な文字 — 生空間 '|', '{}', truncatedエスケープ — その2つ目のエンコードが修復するため、そのようなリクエストはTODAYを正確に動作します。 IllegalArgumentException では、ヘルパーは null と発信者ハンドを返します。 文字列 to RestTemplate を直前に、WARN が URL を命名するので、ケース サイレントの代わりに見えます。 正しいトラフィックは監視されるのを止めます; malformed トラフィックは、それがしたように正確に振る舞います。 このクラスの5つの取引所サイト — 転送、転送Webhook、転送コールバック、および2つのWebhook POSTヘルパー - 行く 一つの exchangeUpstream で 2 つのエンコーディングはコールサイトごとにドリフトできません。 テストは、実際にResendTemplateを残しているURIをMockRestServiceServerを介してアサートします ヘルパーの戻り値だけではなく、エンコーディングが内部で行われるので RestTemplate: status=PENDING%2CIN PROGRESSは1つのレベルを正確に到達します どこでもエンコーディングと %25 なし; 文字列のオーバーロードは、 二重符号化; 生の空間, tuncated %2 と {id} 括弧 各フォールバック 投げるのではなく、通常の繰り返しパラメータのクエリは、どちらかの方法で変更されません。 mvn -o テスト:29テスト、0失敗.

すべての変更

配送を見るのが好きですか?

これらのアップデートは、自動的にワークスペースに埋め込まれます。 週1回無料スタートし、週1回生育する.

永遠に無料で始める料金を見る