module Signauth::Signature::Version0

Public Instance Methods

add_authorization!(credentials, scheme = 'signauth') click to toggle source
# File lib/signauth/signature/version_0.rb, line 6
def add_authorization!(credentials, scheme = 'signauth')
  access_key_id = credentials.access_key_id
  signature     = signature(credentials)

  headers['Authorization'] = authorization(scheme, access_key_id, signature)
end
authenticate() { |access_key_id, scheme| ... } click to toggle source
# File lib/signauth/signature/version_0.rb, line 13
def authenticate(&block)
  raise ArgumentError, "Block required" unless block_given?

  scheme, access_key_id, given = authorization_parts 
  raise Errors::MissingSecurityHeader if scheme.nil? || access_key_id.nil? || given.nil?

  credentials = yield(access_key_id, scheme)
  validate_signature(given, signature(credentials))
  true
end

Private Instance Methods

authorization(scheme, access_key_id, signature) click to toggle source
# File lib/signauth/signature/version_0.rb, line 26
def authorization(scheme, access_key_id, signature)
  "#{scheme} #{access_key_id}:#{signature}"
end
authorization_parts() click to toggle source
# File lib/signauth/signature/version_0.rb, line 30
def authorization_parts
  match_data = headers['Authorization'].match(/^(\S+) (\S+):(\S+)/)
  return nil unless match_data
  match_data[1, 3]
end