Class: SoarAuthenticationToken::RackMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/soar_authentication_token/rack_middleware.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, configuration, auditing = nil) ⇒ RackMiddleware

Returns a new instance of RackMiddleware.



5
6
7
8
9
# File 'lib/soar_authentication_token/rack_middleware.rb', line 5

def initialize(app, configuration, auditing = nil)
  @app = app
  @configuration = configuration
  @auditing = auditing
end

Instance Method Details

#call(env) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/soar_authentication_token/rack_middleware.rb', line 11

def call(env)
  request = Rack::Request.new env
  session, params = request.session, request.params
  token_valid, token_meta, message = validate_and_resolve_token(request.env['HTTP_AUTHORIZATION'],params['flow_identifier'])
  if token_valid
    session['user'] = token_meta['authenticated_identifier']
    session['auth_token_meta'] = token_meta
    @app.call env
  else
    audit_token_rejection("Token rejected due to #{message}",params['flow_identifier'])
    [401, {"Content-Type" => "text/html"}, ["401 - Not authenticated"]]
  end
end