Sha256: ba72618e46bddf074cfe2a92a757ec8bc15241c10257eab13eaceb14e6561650

Contents?: true

Size: 1.55 KB

Versions: 5

Compression:

Stored size: 1.55 KB

Contents

module RailsSso
  class Engine < Rails::Engine
    initializer "sso.helpers" do
      if RailsSso.config.magic_enabled
        ActiveSupport.on_load(:action_controller) do
          include RailsSso::Helpers
        end
      end
    end

    initializer "sso.omniauth", after: :load_config_initializers, before: :build_middleware_stack do |app|
      if RailsSso.config.provider_name
        RailsSso.config.oauth2_strategy_class.class_eval do
          def setup_phase
            setup_sso!

            super
          end

          def other_phase
            setup_sso!

            call_app!
          end

          def mock_call!(*)
            setup_sso!

            super
          end

          def setup_sso!
            env["sso"] ||= RailsSso::App.new(self, session, sso_client)
          end

          def sso_client
            if RailsSso.config.test_mode
              RailsSso::Client.build_fake(RailsSso.config.provider_url)
            else
              RailsSso::Client.build_real(RailsSso.config.provider_url)
            end
          end
        end

        app.config.middleware.use OmniAuth::Builder do
          provider RailsSso.config.provider_name,
            RailsSso.config.provider_key,
            RailsSso.config.provider_secret,
            callback_path: RailsSso.config.provider_callback_path
        end

        app.config.middleware.insert_after OmniAuth::Builder, Warden::Manager do |manager|
          manager.default_strategies :sso
          manager.failure_app = RailsSso.config.failure_app
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rails_sso-0.7.5 lib/rails_sso/engine.rb
rails_sso-0.7.4 lib/rails_sso/engine.rb
rails_sso-0.7.3 lib/rails_sso/engine.rb
rails_sso-0.7.2 lib/rails_sso/engine.rb
rails_sso-0.7.1 lib/rails_sso/engine.rb