diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2011-04-15 18:50:27 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2011-04-15 19:55:05 -0700 |
commit | e4052dbfc0df49d8bbdd1795605f3745656d537d (patch) | |
tree | f91639aa026fc6615ff70333678117ed6d98babc /src/DotNetOpenAuth/OAuth/ChannelElements/SigningBindingElementBase.cs | |
parent | 4b620015e74052ec3d3cbced4c69f550435fc08e (diff) | |
download | DotNetOpenAuth-e4052dbfc0df49d8bbdd1795605f3745656d537d.zip DotNetOpenAuth-e4052dbfc0df49d8bbdd1795605f3745656d537d.tar.gz DotNetOpenAuth-e4052dbfc0df49d8bbdd1795605f3745656d537d.tar.bz2 |
Fixes OAuth 1.0 signatures on Service Providers for messages that omit the optional oauth_version parameter.
Closes #28
Diffstat (limited to 'src/DotNetOpenAuth/OAuth/ChannelElements/SigningBindingElementBase.cs')
-rw-r--r-- | src/DotNetOpenAuth/OAuth/ChannelElements/SigningBindingElementBase.cs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/DotNetOpenAuth/OAuth/ChannelElements/SigningBindingElementBase.cs b/src/DotNetOpenAuth/OAuth/ChannelElements/SigningBindingElementBase.cs index cb81139..d54b05d 100644 --- a/src/DotNetOpenAuth/OAuth/ChannelElements/SigningBindingElementBase.cs +++ b/src/DotNetOpenAuth/OAuth/ChannelElements/SigningBindingElementBase.cs @@ -175,6 +175,13 @@ namespace DotNetOpenAuth.OAuth.ChannelElements { partsToInclude = messageDictionary; } + // If this message was deserialized, include only those explicitly included message parts (excludes defaulted values) + // in the signature. + var originalPayloadMessage = (IMessageOriginalPayload)message; + if (originalPayloadMessage.OriginalPayload != null) { + partsToInclude = partsToInclude.Where(pair => originalPayloadMessage.OriginalPayload.ContainsKey(pair.Key)); + } + foreach (var pair in OAuthChannel.GetUriEscapedParameters(partsToInclude)) { encodedDictionary[pair.Key] = pair.Value; } |