aboutsummaryrefslogtreecommitdiffstats
path: root/activeresource/lib
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2011-09-28 15:49:35 -0700
committerJosé Valim <jose.valim@gmail.com>2011-09-28 15:49:35 -0700
commitad304e9f7e4f244eabfd42e7cd768e3b41725875 (patch)
treedff42fbeab7c9eb2e934a15206f1d16c67c7f909 /activeresource/lib
parenta5e731856b9a35ad0dee6dc1ab820a352fdaec77 (diff)
parent41365a8275dcb6d2e2fbe21ae2b2dfc52db19c1f (diff)
downloadrails-ad304e9f7e4f244eabfd42e7cd768e3b41725875.tar.gz
rails-ad304e9f7e4f244eabfd42e7cd768e3b41725875.tar.bz2
rails-ad304e9f7e4f244eabfd42e7cd768e3b41725875.zip
Merge pull request #3159 from elliterate/digest_auth_with_query_string
Fixed digest authentication for requests with a query string [#3158]
Diffstat (limited to 'activeresource/lib')
-rw-r--r--activeresource/lib/active_resource/connection.rb5
1 files changed, 4 insertions, 1 deletions
diff --git a/activeresource/lib/active_resource/connection.rb b/activeresource/lib/active_resource/connection.rb
index d923204dde..592fca96a4 100644
--- a/activeresource/lib/active_resource/connection.rb
+++ b/activeresource/lib/active_resource/connection.rb
@@ -238,8 +238,11 @@ module ActiveResource
def digest_auth_header(http_method, uri)
params = extract_params_from_response
+ request_uri = uri.path
+ request_uri << "?#{uri.query}" if uri.query
+
ha1 = Digest::MD5.hexdigest("#{@user}:#{params['realm']}:#{@password}")
- ha2 = Digest::MD5.hexdigest("#{http_method.to_s.upcase}:#{uri.path}")
+ ha2 = Digest::MD5.hexdigest("#{http_method.to_s.upcase}:#{request_uri}")
params.merge!('cnonce' => client_nonce)
request_digest = Digest::MD5.hexdigest([ha1, params['nonce'], "0", params['cnonce'], params['qop'], ha2].join(":"))