[PATCH aeolus-image-rubygem] OAuth only binds to Factory requests

Matt Wagner matt.wagner at redhat.com
Tue May 8 18:40:26 UTC 2012


Previously, enabling OAuth for Image Factory would cause _all_
requests flowing through ActiveResource to have OAuth headers
added.
---
 lib/aeolus_image/active_resource_oauth_client.rb |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/lib/aeolus_image/active_resource_oauth_client.rb b/lib/aeolus_image/active_resource_oauth_client.rb
index e9b87d8..258ede9 100644
--- a/lib/aeolus_image/active_resource_oauth_client.rb
+++ b/lib/aeolus_image/active_resource_oauth_client.rb
@@ -26,7 +26,7 @@ module ActiveResourceOAuthClient
     def request_with_oauth(method, path, *arguments)
       @oauth_config = Aeolus::Image::Factory::Base.config || {}
       # Take care to fall back to the standard request method if we don't have full OAuth credentials
-      unless Aeolus::Image::Factory::Base.use_oauth?
+      unless use_oauth_for_url?("#{site.scheme}://#{site.host}:#{site.port}#{path}")
         return request_without_oauth(method, path, *arguments)
       end
       result = ActiveSupport::Notifications.instrument("request.active_resource") do |payload|
@@ -56,6 +56,12 @@ module ActiveResourceOAuthClient
         raise SSLError.new(e.message)
     end
 
+    # Currently, only Factory calls should use OAuth -- extend as needed
+    def use_oauth_for_url?(url)
+      Aeolus::Image::Factory::Base.use_oauth? and
+        url.include?(Aeolus::Image::Factory::Base.config[:site])
+    end
+
     alias_method_chain :request, :oauth
 
   end
-- 
1.7.7.6




More information about the aeolus-devel mailing list