class MSS::Core::Signers::Version3Https

@api private

Attributes

credentials[R]

@return [CredentialProviders::Provider]

Public Class Methods

new(credentials) click to toggle source

@param [CredentialProviders::Provider] credentials

# File lib/mss/core/signers/version_3_https.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/mss/core/signers/version_3_https.rb, line 33
def sign_request req
  parts = []
  parts << "MSS3-HTTPS AWSAccessKeyId=#{credentials.access_key_id}"
  parts << "Algorithm=HmacSHA256"
  parts << "Signature=#{signature(req)}"
  req.headers['x-amzn-authorization'] = parts.join(',')
  req.headers['x-amz-security-token'] = credentials.session_token if
    credentials.session_token
  req
end

Private Instance Methods

signature(req) click to toggle source

@param [Http::Request] req

# File lib/mss/core/signers/version_3_https.rb, line 47
def signature req
  sign(credentials.secret_access_key, string_to_sign(req))
end
string_to_sign(req) click to toggle source

@param [Http::Request] req

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