Skip to content

OAuth 1: Fix special characters in query strings#559

Open
Alanaktion wants to merge 5 commits intodaviddesberg:masterfrom
Alanaktion:parse-url-fixes
Open

OAuth 1: Fix special characters in query strings#559
Alanaktion wants to merge 5 commits intodaviddesberg:masterfrom
Alanaktion:parse-url-fixes

Conversation

@Alanaktion
Copy link

This changes the OAuth 1 HMAC signature generation to support query strings in the path that include special characters, and fixes query strings that use a PHP-style array syntax for the key.

For example, foo[bar]=1 would previously trigger an error, but is now handled correctly, encoding the key to foo%5Bbar%5D before hashing.

Encoding of query values is changed to use RFC 1738-style plus encoding, then full RFC 3986 encoding, which seems to match most implementations. This at least fixes values with spaces when authenticating against the Magento 2 REST API, and matches how Postman encodes the value in its HMAC process.

This changes the OAuth 1 HMAC signature generation to support query strings in the path that include special characters, and fixes query strings that use a PHP-style array syntax for the key.

For example, `foo[bar]=1` would previously trigger an error, but is now handled correctly, encoding the key to `foo%5Bbar%5D` before hashing.

Encoding of query values is changed to use RFC 1738-style plus encoding, then full RFC 3986 encoding, which seems to match most implementations. This at least fixes values with spaces when authenticating against the Magento 2 REST API, and matches how Postman encodes the value in its HMAC process.
This allows things like ?0 to still work
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants