Class: RightScale::CloudApi::AWS::Route53::RequestSigner
- Inherits:
-
CloudApi::Routine
- Object
- CloudApi::Routine
- RightScale::CloudApi::AWS::Route53::RequestSigner
- Defined in:
- lib/cloud/aws/route53/routines/request_signer.rb
Overview
Route 53 request signer
Defined Under Namespace
Classes: Error
Instance Method Summary collapse
-
#process ⇒ void
Authenticates a Route53 request.
Instance Method Details
#process ⇒ void
This method returns an undefined value.
Authenticates a Route53 request
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/cloud/aws/route53/routines/request_signer.rb', line 43 def process # Fix body unless @data[:request][:body]._blank? # Make sure 'content-type' is set if we have a body @data[:request][:headers].set_if_blank('content-type', 'application/xml' ) # Fix body if it is a Hash instance if @data[:request][:body].is_a?(Hash) @data[:request][:body] = Utils::contentify_body(@data[:request][:body], @data[:request][:headers]['content-type']) end # Calculate 'content-md5' when possible (some API calls wanna have it set) if @data[:request][:body].is_a?(String) @data[:request][:headers]['content-md5'] = Base64::encode64(Digest::MD5::digest(@data[:request][:body])).strip end end # Set date @data[:request][:headers].set_if_blank('x-amz-date', Time::now.utc.httpdate) # Set path @data[:request][:path] = Utils::join_urn(@data[:connection][:uri].path, @data[:options][:api_version], @data[:request][:relative_path], @data[:request][:params]) # Sign a request Utils::AWS::sign_v4_signature( @data[:credentials][:aws_access_key_id], @data[:credentials][:aws_secret_access_key], @data[:connection][:uri].host, @data[:request] ) end |