class AWS::Core::Signers::CloudFront

Attributes

credentials[R]

@return [CredentialProviders::Provider]

Public Class Methods

new(credentials) click to toggle source

@param [CredentialProviders::Provider] credentials

# File lib/aws/core/signers/cloud_front.rb, line 24
def initialize credentials
  @credentials = credentials
end

Public Instance Methods

sign_request(req) click to toggle source

@param [Http::Request] req @return [Http::Request]

# File lib/aws/core/signers/cloud_front.rb, line 33
def sign_request req
  req.headers['x-amz-security-token'] = credentials.session_token if
    credentials.session_token
  req.headers['authorization'] =
    "AWS #{credentials.access_key_id}:#{signature(req)}"
  req
end

Private Instance Methods

signature(req) click to toggle source

@param [Http::Request] req

# File lib/aws/core/signers/cloud_front.rb, line 44
def signature req
  sign(credentials.secret_access_key, string_to_sign(req), 'sha1')
end
string_to_sign(req) click to toggle source

@param [Http::Request] req

# File lib/aws/core/signers/cloud_front.rb, line 49
def string_to_sign req
  req.headers['date'] ||= Time.now.httpdate
end