module PrxAuth::Rails

Constants

VERSION

Attributes

configuration[RW]
installed_middleware[RW]

Public Class Methods

configure() { |configuration| ... } click to toggle source
# 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) click to toggle source
# 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