From 5cf7a82bfed9cdcef49ad72306a2bca88ad100be Mon Sep 17 00:00:00 2001
From: Tank Tang <kat@microsoft.com>
Date: Mon, 2 Mar 2020 18:11:48 +0800
Subject: [PATCH] Resolved UTF-8 request cannot be authorized issue in Faraday
 1.0.0

---
 common/lib/azure/core/auth/shared_key.rb | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/common/lib/azure/core/auth/shared_key.rb b/common/lib/azure/core/auth/shared_key.rb
index fb29ce7..54f4690 100644
--- a/common/lib/azure/core/auth/shared_key.rb
+++ b/common/lib/azure/core/auth/shared_key.rb
@@ -57,6 +57,14 @@ module Azure
         #
         # @return       [Azure::Core::Http::HttpRequest]
         def sign_request(req)
+          # Need to make sure Content-Length is correctly set.
+          if ((!req.body.nil?)) then
+            if (req.body.respond_to? :bytesize) then
+              req.headers['Content-Length'] = req.body.bytesize.to_s
+            elsif (req.body.respond_to? :size)
+              req.headers['Content-Length'] = req.body.size.to_s
+            end
+          end
           req.headers['Authorization'] = "#{name} #{sign(req.method, req.uri, req.headers)}"
           req
         end
-- 
GitLab