- Expédié
- 7 août 2026 à 05:11 UTC
- Auteur
- Kamo
- Commite
- b10c950
21670e5 SocialWebhookController via l'entrée de UpstreamUri FULLY-PRE-ENCODED point, mais son URL est un hybride: "token" est un "PathVariable", donc les mains du ressort le traitement de la valeur DECODED, tandis que getQueryString() est brut. Ce point d'entrée encode Rien, qui est juste pour la moitié brute et le mauvais pour le décodé - le miroir image du double-encodage, tout cet ensemble de changement est en cours. POST /api/social/webhook/ab%252Ccd arrive au fur et à mesure de l'acheminement de la chaîne ab%2Ccd, mnim, et MediaService l'a décodé une deuxième fois jusqu'à ab,cd. Avant 21670e5 il arrondi correctement, il s'agissait donc d'une régression, pas d'un trou préexistant. Impact vivant: les jetons sont 32 hex chars - et donc l'encodage-iner, c'est précisément la raison pour laquelle rien ne l'a attrapé. Le contrat a été inversé Cependant, et le premier segment non-hex ajouté à cette voie aurait corrompu silencieusement. Passé au point d'entrée hybride, qui encode le chemin une fois à travers le La requête fait et laisse la requête intacts. Le comportement de Meta/X poignée de main est inchangé et vérifié par les quatre les tests existants, qui affirment toujours les chaînes de requête identiques bytes. Deux nouveaux essais épinglent le contrat avec un jeton non hex ab%252Ccd, avec et sans interrogation. Les deux échouent contre le point d'entrée précédent avec exactement ab%2Ccd. Corre également deux surestimations dans le javadoc d'Urstream: - Elle revendiquait la forme hybride PREVENTS a dans une variable de chemin décodée tronquant la demande au fragment. Ce n'est pas le cas: S'échangre - exactement comme la DefaultUriBuilderFactory derrière la corde surcharge, donc le comportement est inchangé dans les deux sens. L'invenu est le bon appel sur un point de surface publique, mais il ne s'agit pas d'une amélioration et ne doit pas être interprété comme une telle amélioration. La vraie raison pour laquelle les points d'entrée sont divisés est l'encode-once-vs-not-not-all la distinction ci-dessus, qui est maintenant ce que dit le javadoc. - Une chaîne de requête vide (non nulle) utilisée pour donner un effet arrière et maintenant néant. Même demande sous la RFC 3986; notée dans un commentaire donc il n'est pas pris pour un oubli plus tard. Prose et commentaires uniquement pour ces deux-là - pas de changement de comportement. Suite: 45 tests, 0 échec, 0 erreur.