Class: RightScale::CloudApi::AWS::RequestSigner

Inherits:
CloudApi::Routine
  • Object
show all
Defined in:
lib/cloud/aws/base/routines/request_signer.rb

Overview

Request signer for AWS services.

Defined Under Namespace

Classes: Error

Instance Method Summary collapse

Instance Method Details

#processvoid

This method returns an undefined value.

Authenticates an AWS request

Examples:

no example


42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/cloud/aws/base/routines/request_signer.rb', line 42

def process
  # Compile a final request path
  @data[:request][:path] = Utils::join_urn(@data[:connection][:uri].path, @data[:request][:relative_path])

  # Swap query params and body
  @data[:request][:params]['Version'] ||= @data[:options][:api_version]
  @data[:request][:body]   = Utils::params_to_urn(@data[:request][:params]){ |value| Utils::AWS::amz_escape(value) }
  @data[:request][:params] = {}

  Utils::AWS::sign_v4_signature(
    @data[:credentials][:aws_access_key_id],
    @data[:credentials][:aws_secret_access_key],
    @data[:connection][:uri].host,
    @data[:request]
  )
end