[shotwell] oauth: Fix base signature string encoding
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [shotwell] oauth: Fix base signature string encoding
- Date: Sat, 14 Mar 2020 06:55:40 +0000 (UTC)
commit 93212c35603d55fbd863a4c0a961a40493e7800a
Author: Jens Georg <mail jensge org>
Date: Thu Mar 12 00:06:45 2020 +0100
oauth: Fix base signature string encoding
plugins/common/OAuth1Support.vala | 2 +-
plugins/common/RESTSupport.vala | 10 ++++++----
2 files changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/plugins/common/OAuth1Support.vala b/plugins/common/OAuth1Support.vala
index 2a79a6c7..009bc8a7 100644
--- a/plugins/common/OAuth1Support.vala
+++ b/plugins/common/OAuth1Support.vala
@@ -209,7 +209,7 @@ namespace Publishing.RESTSupport.OAuth1 {
}
public string get_authorization_header_string() {
- return "OAuth " + Argument.serialize_list(auth_header_fields, true, ", ");
+ return "OAuth " + Argument.serialize_list(auth_header_fields, false, true, ", ");
}
public void authorize() {
diff --git a/plugins/common/RESTSupport.vala b/plugins/common/RESTSupport.vala
index 19175256..6aa2b7ab 100644
--- a/plugins/common/RESTSupport.vala
+++ b/plugins/common/RESTSupport.vala
@@ -126,11 +126,11 @@ public class Argument {
this.value = value;
}
- public static string serialize_list(Argument[] args, bool escape = false, string? separator = "&") {
+ public static string serialize_list(Argument[] args, bool encode = true, bool escape = false, string?
separator = "&") {
var builder = new StringBuilder("");
foreach (var arg in args) {
- builder.append(arg.to_string(escape));
+ builder.append(arg.to_string(escape, encode));
builder.append(separator);
}
@@ -153,8 +153,10 @@ public class Argument {
return sorted_args.to_array();
}
- public string to_string (bool escape = false) {
- return "%s=%s%s%s".printf (this.key, escape ? "\"" : "", this.value, escape ? "\"" : "");
+ public string to_string (bool escape = false, bool encode = false) {
+ return "%s=%s%s%s".printf (this.key, escape ? "\"" : "",
+ encode ? Soup.URI.encode(this.value, OAuth1.ENCODE_RFC_3986_EXTRA) : this.value,
+ escape ? "\"" : "");
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]