class Rack::MogueraAuthentication
A Rack
middleware inserts a Moguera
Authentication.
@example config.ru
# Add Rack::MogueraAuthentication somewhere in your rack stack use Rack::MogueraAuthentication do |request_access_key| # Search a secret_access_key by a request_access_key key_to_secret(request_access_key) end
Public Class Methods
new(app, &block)
click to toggle source
# File lib/rack/moguera_authentication.rb, line 14 def initialize(app, &block) @app = app @secret_block = block end
Public Instance Methods
call(env)
click to toggle source
# File lib/rack/moguera_authentication.rb, line 19 def call(env) begin request_token = Moguera::Authentication.new(env['HTTP_AUTHORIZATION']) auth = request_token.authenticate! do |access_key| secret_access_key = @secret_block.call(access_key) params = build_parameter(access_key, secret_access_key, env) Moguera::Authentication::Request.new(params) end env['moguera.auth'] = auth rescue => e env['moguera.error'] = e end @app.call(env) end
Private Instance Methods
build_parameter(access_key, secret_access_key, env)
click to toggle source
# File lib/rack/moguera_authentication.rb, line 39 def build_parameter(access_key, secret_access_key, env) { access_key: access_key, secret_access_key: secret_access_key, request_path: env['REQUEST_PATH'], request_method: env['REQUEST_METHOD'], content_type: env['CONTENT_TYPE'], http_date: env['HTTP_DATE'] } end