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/helpers/prx_auth/rails/sessions_helper.rb,
lib/prx_auth/rails/ext/controller/user_info.rb,
lib/prx_auth/rails/ext/controller/account_info.rb,
app/controllers/prx_auth/rails/sessions_controller.rb

Defined Under Namespace

Modules: AccountInfo, Controller, SessionsHelper, UserInfo Classes: Configuration, Engine, Railtie, SessionsController, Token

Constant Summary collapse

VERSION =
"5.1.2"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject

Returns the value of attribute configuration.



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

def configuration
  @configuration
end

.installed_middlewareObject

Returns the value of attribute installed_middleware.



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

def installed_middleware
  @installed_middleware
end

Class Method Details

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

Yields:



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

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



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

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