diff --git a/AFXAuthClient/AFXAuthClient.m b/AFXAuthClient/AFXAuthClient.m old mode 100644 new mode 100755 index ea3c581..95ee5db --- a/AFXAuthClient/AFXAuthClient.m +++ b/AFXAuthClient/AFXAuthClient.m @@ -232,6 +232,27 @@ -(void)authorizeUsingXAuthWithAccessTokenPath:(NSString *)accessTokenPath - (NSMutableDictionary *)authorizationHeaderWithRequest:(NSURLRequest *)request parameters:(NSDictionary *)parameters { + // use parameters for signature only if "application/x-www-form-urlencoded" (OAuth spec 9.1.1) + if (self.parameterEncoding != AFFormURLParameterEncoding) { + parameters = nil; + } + // get parameters from query string as well (OAuth spec 9.1.1) + NSMutableDictionary *mutableParameters = [parameters mutableCopy]; + // make sure we have a parameters dictionary to add objects + if (mutableParameters == nil) { + mutableParameters = [[NSMutableDictionary alloc] init]; + } + NSArray *queryParameters = [[[request URL] query] componentsSeparatedByString:@"&"]; + for (NSString *parameter in queryParameters) { + // we support single value parameters + NSMutableArray *paramArray = [[parameter componentsSeparatedByString:@"="] mutableCopy]; + NSString *key = [paramArray objectAtIndex:0]; + [paramArray removeObjectAtIndex:0]; + NSString *value = [paramArray componentsJoinedByString:@"="]; + [mutableParameters setObject:value forKey:key]; + } + parameters = mutableParameters; + NSMutableDictionary *authorizationHeader = [[NSMutableDictionary alloc] initWithDictionary:@{@"oauth_nonce": _nonce, @"oauth_signature_method": @"HMAC-SHA1", @"oauth_timestamp": _timestamp,