Sha256: 28e020d57ad3789d8bb6796869d35c07460d2d2b75124861132e391b458647e3
Contents?: true
Size: 1.2 KB
Versions: 2
Compression:
Stored size: 1.2 KB
Contents
# frozen_string_literal: true require 'rack' class Ey::Hmac::Adapter::Rack < Ey::Hmac::Adapter def initialize(request, options) super @request = request.is_a?(Hash) ? ::Rack::Request.new(request) : request end def method request.request_method.to_s.upcase end def content_type request.content_type end def content_digest request.env['HTTP_CONTENT_DIGEST'] end def set_content_digest request.env['HTTP_CONTENT_DIGEST'] = Digest::MD5.hexdigest(body) if body end 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 end end def date request.env['HTTP_DATE'] end def set_date request.env['HTTP_DATE'] = Time.now.httpdate end def path request.path end def sign!(key_id, key_secret) set_date set_content_digest request.env['HTTP_X_SIGNATURE_VERSION'] = options[:version] if options[:version] request.env["HTTP_#{authorization_header.to_s.upcase}"] = authorization(key_id, key_secret) end def authorization_signature request.env["HTTP_#{authorization_header.to_s.upcase}"] end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ey-hmac-2.4.0 | lib/ey-hmac/adapter/rack.rb |
ey-hmac-2.3.1 | lib/ey-hmac/adapter/rack.rb |