class Balrog::RoutesMiddleware

Public: Balrog routes middleware that redirects the user to a security gate unless the session includes { 'balrog' => 'authenticated' }.

In order to protect SideKiq Web you would do something like this:

require 'sidekiq/web'

Sidekiq::Web.disable(:sessions) Sidekiq::Web.use Balrog::RoutesMiddleware

mount Sidekiq::Web => '/sidekiq'

Public Class Methods

new(app) click to toggle source
# File lib/balrog/routes_middleware.rb, line 18
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/balrog/routes_middleware.rb, line 22
def call(env)
  unless authenticated?(env['rack.session']['balrog'])
    html = ApplicationController.renderer.render 'balrog/gate', layout: 'balrog'
    return [200, {"Content-Type" => "text/html"}, [html]]  
  end
  @app.call(env)
end