class SoarAuthorization::Authorize
Attributes
app[R]
Public Class Methods
new(app)
click to toggle source
# File lib/soar_authorization.rb, line 15 def initialize(app) @app = app end
register_access_manager(path, service_identifier, access_manager)
click to toggle source
# File lib/soar_authorization.rb, line 10 def self.register_access_manager(path, service_identifier, access_manager) @@access_managers[path] ||= [] @@access_managers[path] << { 'service_identifier' => service_identifier, 'access_manager' => access_manager } if not @@access_managers[path].include?(access_manager) end
Public Instance Methods
call(env)
click to toggle source
# File lib/soar_authorization.rb, line 19 def call(env) request = Rack::Request.new(env) entries = @@access_managers[request.path] if entries entries.each do |entry| service_identifier = entry['service_identifier'] access_manager = entry['access_manager'] return [403, {"Content-Type" => "text/html"}, [" 403 - Not authorized"]] if not authorized?(env, access_manager, service_identifier, request.path, request) end end @app.call(env) end