Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OAuth 1: Fix special characters in query strings #559

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

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