Module: ApiAuth::Rails::ActiveResourceExtension::Connection

Defined in:
lib/api_auth/railtie.rb

Overview

BaseApiAuth

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object


87
88
89
90
91
92
# File 'lib/api_auth/railtie.rb', line 87

def self.included(base)
  base.send :alias_method_chain, :request, :auth
  base.class_eval do
    attr_accessor :hmac_secret_key, :hmac_access_id, :use_hmac
  end
end

Instance Method Details

#request_with_auth(method, path, *arguments) ⇒ Object


94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/api_auth/railtie.rb', line 94

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)
    arguments.last['Content-MD5'] = tmp['Content-MD5'] if tmp['Content-MD5']
    arguments.last['DATE'] = tmp['DATE']
    arguments.last['Authorization'] = tmp['Authorization']
  end

  request_without_auth(method, path, *arguments)
end