class Rails::Auth::Monitor::Middleware

Fires a user-specified callback which reports on authorization success or failure. Useful for logging or monitoring systems for AuthZ failures

Public Class Methods

new(app, callback) click to toggle source
# File lib/rails/auth/monitor/middleware.rb, line 9
def initialize(app, callback)
  raise ArgumentError, "callback must respond to :call" unless callback.respond_to?(:call)

  @app      = app
  @callback = callback
end

Public Instance Methods

call(env) click to toggle source
# File lib/rails/auth/monitor/middleware.rb, line 16
def call(env)
  begin
    result = @app.call(env)
  rescue Rails::Auth::NotAuthorizedError
    @callback.call(env, false)
    raise
  end

  @callback.call(env, true)
  result
end