module AWS::Core::Signature::Version2

Public Instance Methods

add_authorization!(credentials) click to toggle source
# File lib/aws/core/signature/version_2.rb, line 19
def add_authorization! credentials
  add_param('AWSAccessKeyId', credentials.access_key_id)
  if token = credentials.session_token
    add_param("SecurityToken", token)
  end
  add_param('SignatureVersion', '2')
  add_param('SignatureMethod', 'HmacSHA256')
  add_param('Signature', signature(credentials))
  self.body = url_encoded_params
end

Protected Instance Methods

signature(credentials) click to toggle source
# File lib/aws/core/signature/version_2.rb, line 32
def signature credentials
  Signer.sign(credentials.secret_access_key, string_to_sign)
end
string_to_sign() click to toggle source
# File lib/aws/core/signature/version_2.rb, line 36
def string_to_sign

  host =
    case port
    when 80, 443 then self.host
    else "#{self.host}:#{port}"
    end

  [
    http_method,
    host.to_s.downcase,
    path,
    params.sort.collect { |p| p.encoded }.join('&'),
  ].join("\n")

end