class OrangeData::Transport::RequestSignatureMiddleware

middleware for request signatures

Public Class Methods

new(app, signature_key) click to toggle source
# File lib/orange_data/transport.rb, line 24
def initialize(app, signature_key)
  @app = app
  @signature_key = signature_key
end

Public Instance Methods

call(env) click to toggle source
# File lib/orange_data/transport.rb, line 29
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