module ApiAuth::Rails::ActiveResourceExtension::Connection

Public Class Methods

included(base) click to toggle source
# File lib/api_auth/railtie.rb, line 61
def self.included(base)
  base.send :alias_method, :request_without_auth, :request
  base.send :alias_method, :request,              :request_with_auth

  base.class_eval do
    attr_accessor :hmac_secret_key, :hmac_access_id, :use_hmac, :api_auth_options
  end
end

Public Instance Methods

request_with_auth(method, path, *arguments) click to toggle source
# File lib/api_auth/railtie.rb, line 70
def request_with_auth(method, path, *arguments)
  if use_hmac && hmac_access_id && hmac_secret_key
    h = arguments.last
    tmp = "Net::HTTP::#{method.to_s.capitalize}".constantize.new(path, h)
    tmp.body = arguments[0] if arguments.length > 1
    ApiAuth.sign!(tmp, hmac_access_id, hmac_secret_key, api_auth_options)
    if tmp['X-Authorization-Content-SHA256']
      arguments.last['X-Authorization-Content-SHA256'] = tmp['X-Authorization-Content-SHA256']
    end
    arguments.last['DATE'] = tmp['DATE']
    arguments.last['Authorization'] = tmp['Authorization']
  end

  request_without_auth(method, path, *arguments)
end