Method: Amazon::Coral::V2SignatureHelper#canonicalize

Defined in:
lib/amazon/coral/v2signaturehelper.rb

#canonicalize(args) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/amazon/coral/v2signaturehelper.rb', line 28

def canonicalize(args)
  query_string_map = args[:query_string_map]
  uri = args[:uri]
  verb = args[:verb]
  host = args[:host].downcase

  # exclude any existing Signature parameter from the canonical string
  sorted = sort(query_string_map.reject { |k, v| k == 'Signature' })
  
  canonical = "#{verb}\n#{host}\n#{uri}\n"
  isFirst = true

  sorted.each { |v|
    if(isFirst) then
      isFirst = false
    else
      canonical << '&'
    end

    canonical << UrlEncoding.encode(v[0])
    unless(v[1].nil?) then
      canonical << '='
      canonical << UrlEncoding.encode(v[1])
    end
  }

  return canonical
end