- 出荷済み
- 2026年8月7日 5:11 UTC
- プロフィール
- Kamo
- コンテンツ
- b10c950
21670e5 は、UpstreamUri の FULLY-PRE-ENCODED エントリーを通じてソーシャルWebhookController をルーティングしました しかし、その URL はハイブリッドです。 `token` は @PathVariable なので、春は手が getQueryString() が生成される間、DECODED 値をハンドラします。 エントリーポイントエンコード 何も、それはデコードされたもののために生の半分と間違っている - 鏡 ダブルエンコードのイメージです。この全変更セットです。 POST /api/ソーシャル/webhook/ab%252 Ccdは文字列ab%2Ccdとして到着し、転送されました 動詞、MediaService は ab,cd まで秒単位でデコードしました。 21670e5の前に 往復が正しくないので、これは回帰ではなく、既存の穴でした。 ゼロライブインパクト:トークンは32ヘックスチャーズです**************** エンコーディングインサート、それはまさにそれがキャッチされていない理由です。 契約は逆転しました しかし、このルートに追加された最初の非六角セグメントが破損している 静かに。 ハイブリッドエントリーポイントに切り替え、パスを一度にエンコードする 同じ UriComponentsBuilder 呼び出し DefaultUriBuilderFactory はクエリを生成し、 無接触。 メタ/X ハンドシェイクの動作は変更されていません。4 で検証 既存のテストは、まだバイトの識別クエリ文字列をアサートします。 2つの新しいテストは非hex ab%252Ccdのトークンとの契約を、およびなしでピンで止めます お問い合わせ どちらも、ab%2Ccd と以前のエントリ ポイントに対して失敗します。 また、UpstreamUri の javadoc の 2 つのオーバーステートを修正します。 - これは、ハイブリッドフォームPREVENTSをデコードされたパス変数のトランチで `#` を主張しました リクエストのフラグメント。 お問い合わせ 文字列の後ろにある DefaultUriBuilderFactory のように `#` を正確に分割 オーバーロードなので、動作は変更されません。 変更されていないことは正しい呼び出しです 公共の面では、改善ではなく、一つとして読み込むべきではありません。 エントリーポイントが分割される理由は、エンコードオンスvs-not-at-allです 上記の区別は、Javadocが言うものです。 - ルーティング `?` を継承するために使われる空の (null ではなく) クエリ文字列で、 なし。 RFC 3986 の下の同じ; コメントで指摘されるので、それは間違いありません あとは無理です。 これらの2つの行動は変化しません。 スイート:45テスト、0失敗、0エラー.