Parameters must be "sorted by name, using lexicographical byte value ordering" (from Oauth specs) which is incorrect if using strnatcmp.
Magento is not able to validate signatures for requests with parameters such as /rest/V1/foo?keys[0]=test1&keys[1]=test2&keys[2]=test3&keys[3]=test4&keys[4]=test5&keys[5]=test6&keys[6]=test7&keys[7]=test8&keys[8]=test9&keys[9]=test10&keys[10]=test11 as it will consider that keys[10] goes after keys[9] whereas it should be ordered between keys[1] and keys[2].
This PR is similar to https://github.com/OpenMage/magento-lts/pull/721 Please read the full description there.
TL;DR
Parameters must be "sorted by name, using lexicographical byte value ordering" (from Oauth specs) which is incorrect if using
strnatcmp
.Magento is not able to validate signatures for requests with parameters such as
/rest/V1/foo?keys[0]=test1&keys[1]=test2&keys[2]=test3&keys[3]=test4&keys[4]=test5&keys[5]=test6&keys[6]=test7&keys[7]=test8&keys[8]=test9&keys[9]=test10&keys[10]=test11
as it will consider thatkeys[10]
goes afterkeys[9]
whereas it should be ordered betweenkeys[1]
andkeys[2]
.