Class: OrangeData::Transport::RequestSignatureMiddleware

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/orange_data/transport.rb

Overview

middleware for request signatures

Instance Method Summary collapse

Constructor Details

#initialize(app, signature_key) ⇒ RequestSignatureMiddleware

Returns a new instance of RequestSignatureMiddleware.



23
24
25
26
# File 'lib/orange_data/transport.rb', line 23

def initialize(app, signature_key)
  @app = app
  @signature_key = signature_key
end

Instance Method Details

#call(env) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/orange_data/transport.rb', line 28

def call(env)
  if env.body
    signature = @signature_key.sign(OpenSSL::Digest::SHA256.new, env.body)
    env.request_headers['X-Signature'] = Base64.strict_encode64(signature)
  end
  @app.call(env)
end