1. Make an OAuth request using a token that contains a character that should be
URL-encoded (e.g. a base64 string that ends with "==")
2. The signature base will be invalid because it doesn't encode the OAuth
parameters before calculating the signature base
Here's a patch (~line 248-257):
List<QueryParameter> parameters = GetQueryParameters(url.Query);
parameters.Add(new QueryParameter(OAuthVersionKey, UrlEncode(OAuthVersion)));
parameters.Add(new QueryParameter(OAuthNonceKey, UrlEncode(nonce)));
parameters.Add(new QueryParameter(OAuthTimestampKey, UrlEncode(timeStamp)));
parameters.Add(new QueryParameter(OAuthSignatureMethodKey,
UrlEncode(signatureType)));
parameters.Add(new QueryParameter(OAuthConsumerKeyKey, UrlEncode(consumerKey)));
if (!string.IsNullOrEmpty(token))
{
parameters.Add(new QueryParameter(OAuthTokenKey, UrlEncode(token)));
}
Original issue reported on code.google.com by kam...@gmail.com on 15 Mar 2011 at 4:06
Original issue reported on code.google.com by
kam...@gmail.com
on 15 Mar 2011 at 4:06