class Aws::Plugins::SignatureV2::Handler

Public Instance Methods

call(context) click to toggle source
# File lib/aws-sdk-core/plugins/signature_v2.rb, line 18
def call(context)
  apply_signature(
    context.http_request,
    context.config.v2_signer
  )
  @handler.call(context)
end

Private Instance Methods

apply_signature(req, signer) click to toggle source
# File lib/aws-sdk-core/plugins/signature_v2.rb, line 28
def apply_signature(req, signer)

  param_list = req.body.param_list
  param_list.delete('Timestamp') # in case of re-signing

  signature = signer.sign_request(
    http_method: req.http_method,
    url: req.endpoint,
    params: param_list.inject({}) do |hash, param|
      hash[param.name] = param.value
      hash
    end
  )

  # apply signature
  signature.each_pair do |param_name, param_value|
    param_list.set(param_name, param_value)
  end

  req.body = param_list.to_io

end