Sha256: 849c0d21a904456082332693788c37b5036d479a7a700fe5eb7f47f4ba2fce04
Contents?: true
Size: 1.85 KB
Versions: 1
Compression:
Stored size: 1.85 KB
Contents
module ApiAuth module RequestDrivers # :nodoc: class FaradayRequest # :nodoc: include ApiAuth::Helpers def initialize(request) @request = request @headers = fetch_headers true end def set_auth_header(header) @request.headers.merge!({ "Authorization" => header }) @headers = fetch_headers @request end def calculated_md5 if @request.body body = @request.body else body = '' end md5_base64digest(body) end def populate_content_md5 if ['POST', 'PUT'].include?(@request.method.to_s.upcase) @request.headers["Content-MD5"] = calculated_md5 end end def md5_mismatch? if ['POST', 'PUT'].include?(@request.method.to_s.upcase) calculated_md5 != content_md5 else false end end def fetch_headers capitalize_keys @request.headers end def content_type value = find_header(%w(CONTENT-TYPE CONTENT_TYPE HTTP_CONTENT_TYPE)) value.nil? ? "" : value end def content_md5 value = find_header(%w(CONTENT-MD5 CONTENT_MD5 HTTP-CONTENT-MD5 HTTP_CONTENT_MD5)) value.nil? ? "" : value end def request_uri uri = URI::HTTP.new(nil, nil, nil, nil, nil, @request.path, nil, @request.params.to_query, nil) uri.to_s end def set_date @request.headers.merge!({ "DATE" => Time.now.utc.httpdate }) end def timestamp value = find_header(%w(DATE HTTP_DATE)) value.nil? ? "" : value end def authorization_header find_header %w(Authorization AUTHORIZATION HTTP_AUTHORIZATION) end private def find_header(keys) keys.map {|key| @headers[key] }.compact.first end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
api-auth-1.3.0 | lib/api_auth/request_drivers/faraday.rb |