Codificare il token decodificato esattamente una volta sulla strada a monte

FixAPIService
Spegnimento
7 agosto 2026 alle ore 05:11 UTC
Autore
Kamo
Impegno
b10c950

21670e5 ha percorso SocialWebhookController attraverso la voce FULLY-PRE-ENCODED di UpstreamUri punto, ma il suo URL è un ibrido: `token` è un @PathVariable, quindi la primavera consegna il handler il valore DECODED, mentre getQueryString() è crudo. Il punto d'entrata codifica nulla, che è giusto per la metà grezza e sbagliato per quella decodifica — lo specchio l'immagine del doppio codificare l'intero set di cambiamento è circa. POST /api/social/webhook/ab%252 Ccd arriva come la stringa ab%2Ccd, è stato inoltrato verbatim, e MediaService ha decodificato una seconda volta fino ad ab,cd. Prima del 21670e5 è stata una regressione, non un buco preesistente. Zero live Impact: i token sono 32 hex chars****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** encoding-inert, che è esattamente il motivo per cui nulla l'ha catturato. Il contratto è stato invertito però, e il primo segmento non-hex aggiunto a questo percorso avrebbe danneggiato silenziosamente. Passato al punto di ingresso ibrido, che codifica il percorso una volta attraverso il stesso UriComponentsBuilder chiamata DefaultUriBuilderFactory fa e lascia la query intatto. Il comportamento delle mani Meta/X è immutato — verificato dai quattro test esistenti, che ancora affermano stringhe di query byte-identical. Due nuovi test indicano il contratto con un token non-hex ab%252Ccd, con e senza query. Entrambi falliscono contro il punto di entrata precedente con esattamente ab%2Ccd. Corregge anche due overstatements nel javadoc di UpstreamUri: - Ha rivendicato la forma ibrida PREVENTS a `#` in un percorso decodificato variabile troncante la richiesta al frammento. Non e' cosi'. si divide su `#` esattamente come il DefaultUriBuilderFactory dietro lo String sovraccarico, quindi il comportamento è invariato in entrambi i modi. Lo scambio è la giusta chiamata su una superficie pubblica, ma non è un miglioramento e non deve leggere come uno. Il vero motivo per cui i punti di ingresso sono divisi è l'encode-once-vs-not-at-all distinzione sopra, che è ora quello che dice il javadoc. - Una stringa di query vuota (non nulla) utilizzata per cedere un `?`?` e ora cede Nessuno. Stessa richiesta in RFC 3986; nota in un commento in modo da non sbagliare più tardi. Prose e commenti solo per questi due — nessun cambiamento di comportamento. Suite: 45 test, 0 guasti, 0 errori.

Tutte le modifiche

Come quello che vedi la spedizione?

Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.

Inizia gratis per sempreVisualizza il prezzo