class Ey::Hmac::Adapter::Rack

Public Class Methods

new(request, options) click to toggle source
Calls superclass method Ey::Hmac::Adapter::new
# File lib/ey-hmac/adapter/rack.rb, line 4
def initialize(request, options)
  super
  @request = request.is_a?(Hash) ? ::Rack::Request.new(request) : request
end

Public Instance Methods

authorization_signature() click to toggle source
# File lib/ey-hmac/adapter/rack.rb, line 60
def authorization_signature
  request.env["HTTP_#{authorization_header.to_s.upcase}"]
end
body() click to toggle source
# File lib/ey-hmac/adapter/rack.rb, line 27
def body
  if request.env["rack.input"]
    request.env["rack.input"].rewind
    body = request.env["rack.input"].read
    request.env["rack.input"].rewind
    body == "" ? nil : body
  else nil
  end
end
content_digest() click to toggle source
# File lib/ey-hmac/adapter/rack.rb, line 17
def content_digest
  request.env['HTTP_CONTENT_DIGEST']
end
content_type() click to toggle source
# File lib/ey-hmac/adapter/rack.rb, line 13
def content_type
  request.content_type
end
date() click to toggle source
# File lib/ey-hmac/adapter/rack.rb, line 37
def date
  request.env['HTTP_DATE']
end
method() click to toggle source
# File lib/ey-hmac/adapter/rack.rb, line 9
def method
  request.request_method.to_s.upcase
end
path() click to toggle source
# File lib/ey-hmac/adapter/rack.rb, line 45
def path
  request.path
end
set_content_digest() click to toggle source
# File lib/ey-hmac/adapter/rack.rb, line 21
def set_content_digest
  if body
    request.env['HTTP_CONTENT_DIGEST'] = Digest::MD5.hexdigest(body)
  end
end
set_date() click to toggle source
# File lib/ey-hmac/adapter/rack.rb, line 41
def set_date
  request.env['HTTP_DATE'] = Time.now.httpdate
end
sign!(key_id, key_secret) click to toggle source
# File lib/ey-hmac/adapter/rack.rb, line 49
def sign!(key_id, key_secret)
  set_date
  set_content_digest

  if options[:version]
    request.env['HTTP_X_SIGNATURE_VERSION'] = options[:version]
  end

  request.env["HTTP_#{authorization_header.to_s.upcase}"] = authorization(key_id, key_secret)
end