Înaintează interogările apelantului în loc să le codezi de două ori

FixAPIService
Expediere
7 august 2026 la 04:07 UTC
Autor
Kamo
Comite
3c24d32

Fiecare URL pe care această poartă îl construiește este asamblat din GETRequestURI() și GetQueryString () RestTemplate as a String. Supraîncărcarea String RestTemplate nu ia un URL; ele ia un URI percentila, extins de un ImplicitUriBuilderFactory care RestTemplate Configurează în EncodingMode.URI COMPONENT. Acest mod codifică fiecare componentă, și "%" nu este un Pchar, astfel încât o evadare existentă a fost scăpat din nou:% 2C a plecat ca% 252C. Serviciul din amonte a decodat o dată și a primit literal token A valoarea unde apelantul a trimis două. înainte () este pâlnia unică pentru fiecare /api/<x>/** route, so /api/docs, /api/security, /api/kb, /api/media și restul toate au fost afectate simultan; valorile fără caracter rezervat sunt un punct fix; Ceea ce l-a făcut intermitent şi uşor de ratat. la UpstreamUri() parsează URL-ul și supraîncărcarea URI a schimbului() ocolește handler șablon în întregime, astfel încât octeți trece hop neatins. Acesta nu este în mod deliberat un schimb direct la URI.create. Această metodă aruncă pe o caracter ilegal într-un URI Şi o astfel de cerere funcţionează astăzi tocmai pentru că al doilea cod îl repară. Cu excepţia cazului în care ajutorul se întoarce nul şi apelantul mâinile String pentru a RestTemple exact ca înainte, cu un WARN numirea URL-ul astfel încât cazul este vizibilă în loc de tăcere. Opriri de trafic corecte fiind mutilate; malformate Traficul se comportă exact aşa. Toate cele cinci site-uri de schimb din această clasă înainte, înainteWebhook, înainteCallback și cele două webhook POST ajutători du-te prin intermediul unui schimbUpstream astfel încât cele două codări să nu devieze pe site-ul apelului. Testele afirmă URI-ul care de fapt lasă RestTemploe, prin MockRestServer Mai degrabă decât valoarea de returnare a ajutorului singur, deoarece codificarea se întâmplă în interiorul RestTemplate: status=Pencing%2CIN PROGRESS sosește cu exact un nivel de codare și nu %25 oriunde; supraîncărcarea String este fixat ca lucru care dublu-codat; un spațiu brut, un trunchiat% 2 și o bretele {id} fiecare toamna înapoi mai degrabă decât să arunce; și o interogare obișnuită cu param repetat este neschimbată în ambele sensuri. mvn -o test: 29 teste, 0 eșecuri.

Toate modificările

Ca ceea ce vezi de transport maritim?

Fiecare dintre aceste actualizări aterizează automat în spațiul de lucru. Începe gratuit și urmăriți-l crească săptămână după săptămână.

Pornește gratuit pentru totdeaunaVezi prețurile