changed how to render the Authentication Header
This commit is contained in:
parent
5bb9932919
commit
2a8de3c35c
@ -200,7 +200,7 @@ addAuthHeader (Credential cred) req =
|
|||||||
req { requestHeaders = insertMap "Authorization" (renderAuthHeader cred) $ requestHeaders req }
|
req { requestHeaders = insertMap "Authorization" (renderAuthHeader cred) $ requestHeaders req }
|
||||||
|
|
||||||
renderAuthHeader :: [(BS.ByteString, BS.ByteString)] -> BS.ByteString
|
renderAuthHeader :: [(BS.ByteString, BS.ByteString)] -> BS.ByteString
|
||||||
renderAuthHeader = ("OAuth " `BS.append`). BS.intercalate "," . map (\(a,b) -> BS.concat [paramEncode a, "=\"", paramEncode b, "\""]) . filter ((`notElem` ["oauth_token_secret", "oauth_consumer_secret"]) . fst)
|
renderAuthHeader = ("OAuth " `BS.append`). BS.intercalate "," . map (\(a,b) -> BS.concat [paramEncode a, "=\"", paramEncode b, "\""]) . filter ((`elem` ["realm", "oauth_token", "oauth_verifier", "oauth_consumer_key", "oauth_signature_method", "oauth_timestamp", "oauth_nonce", "oauth_version", "oauth_callback", "oauth_signature"]) . fst)
|
||||||
|
|
||||||
-- | Encode a string using the percent encoding method for OAuth.
|
-- | Encode a string using the percent encoding method for OAuth.
|
||||||
paramEncode :: BS.ByteString -> BS.ByteString
|
paramEncode :: BS.ByteString -> BS.ByteString
|
||||||
@ -223,7 +223,7 @@ getBaseString tok req = do
|
|||||||
bsBodyQ <- if isBodyFormEncoded $ requestHeaders req
|
bsBodyQ <- if isBodyFormEncoded $ requestHeaders req
|
||||||
then liftM parseSimpleQuery $ toLBS (requestBody req)
|
then liftM parseSimpleQuery $ toLBS (requestBody req)
|
||||||
else return []
|
else return []
|
||||||
let bsAuthParams = filter ((`notElem`["oauth_signature","realm", "oauth_token_secret"]).fst) $ unCredential tok
|
let bsAuthParams = filter ((`elem`["oauth_consumer_key","oauth_token", "oauth_version","oauth_signature_method","oauth_timestamp", "oauth_nonce", "oauth_verifier", "oauth_version"]).fst) $ unCredential tok
|
||||||
allParams = bsQuery++bsBodyQ++bsAuthParams
|
allParams = bsQuery++bsBodyQ++bsAuthParams
|
||||||
bsParams = BS.intercalate "&" $ map (\(a,b)->BS.concat[a,"=",b]) $ sortBy compareTuple
|
bsParams = BS.intercalate "&" $ map (\(a,b)->BS.concat[a,"=",b]) $ sortBy compareTuple
|
||||||
$ map (\(a,b) -> (paramEncode a,paramEncode b)) allParams
|
$ map (\(a,b) -> (paramEncode a,paramEncode b)) allParams
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user