class HTTPSignature::Faraday
Attributes
key[RW]
key_id[RW]
Public Instance Methods
call(env)
click to toggle source
# File lib/http_signature/faraday.rb, line 11 def call(env) raise 'key and key_id needs to be set' if self.class.key.nil? || self.class.key_id.nil? body = if env[:body] && env[:body].respond_to?(:read) string = env[:body].read env[:body].rewind string else env[:body].to_s end # Choose which headers to sign filtered_headers = %w[Host Date Digest] headers_to_sign = env[:request_headers].select { |k, _v| filtered_headers.include?(k.to_s) } signature = HTTPSignature.create( url: env[:url], method: env[:method], headers: headers_to_sign, key: self.class.key, key_id: self.class.key_id, algorithm: 'hmac-sha256', body: body ) env[:request_headers]['Signature'] = signature @app.call(env) end