class StackerBee::HTTPMiddleware::SignedQuery
Public Class Methods
new(app, key)
click to toggle source
Calls superclass method
# File lib/stacker_bee/http_middleware/signed_query.rb, line 7 def initialize(app, key) @key = key fail 'Key cannot be nil' unless @key super app end
Public Instance Methods
call(env)
click to toggle source
# File lib/stacker_bee/http_middleware/signed_query.rb, line 13 def call(env) sign_uri env[:url] @app.call(env) end
sign_uri(uri)
click to toggle source
# File lib/stacker_bee/http_middleware/signed_query.rb, line 18 def sign_uri(uri) downcased = uri.query.downcase nonplussed = downcased.gsub('+', '%20') signed = OpenSSL::HMAC.digest('sha1', @key, nonplussed) encoded = Base64.encode64(signed).chomp escaped = CGI.escape(encoded) uri.query << "&signature=#{escaped}" end