Module: PrxAuth::Rails

Defined in:
lib/prx_auth/rails.rb,
lib/prx_auth/rails/engine.rb,
lib/prx_auth/rails/railtie.rb,
lib/prx_auth/rails/version.rb,
lib/prx_auth/rails/ext/controller.rb,
app/controllers/prx_auth/rails/sessions_controller.rb

Defined Under Namespace

Modules: Controller Classes: Configuration, Engine, Railtie, SessionsController, Token

Constant Summary collapse

VERSION =
"4.2.1"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject

Returns the value of attribute configuration.



9
10
11
# File 'lib/prx_auth/rails.rb', line 9

def configuration
  @configuration
end

.installed_middlewareObject

Returns the value of attribute installed_middleware.



9
10
11
# File 'lib/prx_auth/rails.rb', line 9

def installed_middleware
  @installed_middleware
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



11
12
13
14
15
16
17
18
19
# File 'lib/prx_auth/rails.rb', line 11

def configure
  yield configuration if block_given?

  # only install from first call to configure block
  if configuration.install_middleware && !installed_middleware
    install_middleware!
    self.installed_middleware = true
  end
end

.install_middleware!(app = nil) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/prx_auth/rails.rb', line 21

def install_middleware!(app = nil)
  app ||= ::Rails.application if defined?(::Rails)

  return false unless app

  # guess protocol from host
  host = configuration.id_host
  path = configuration.cert_path
  protocol =
    if host.include?("localhost") || host.include?("127.0.0.1")
      "http"
    else
      "https"
    end

  app.middleware.insert_after Rack::Head, Rack::PrxAuth,
    cert_location: "#{protocol}://#{host}/#{path}",
    issuer: host
end