summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth/OAuth/ChannelElements/SigningBindingElementBase.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2011-04-15 18:50:27 -0700
committerAndrew Arnott <andrewarnott@gmail.com>2011-04-15 19:55:05 -0700
commite4052dbfc0df49d8bbdd1795605f3745656d537d (patch)
treef91639aa026fc6615ff70333678117ed6d98babc /src/DotNetOpenAuth/OAuth/ChannelElements/SigningBindingElementBase.cs
parent4b620015e74052ec3d3cbced4c69f550435fc08e (diff)
downloadDotNetOpenAuth-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.cs7
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;
}