Sha256: cfcdfcaf9864a5c88c419b26ec860ee2316423a88979ab69313dcb543c1e0b30
Contents?: true
Size: 1.69 KB
Versions: 1
Compression:
Stored size: 1.69 KB
Contents
require 'omniauth' require 'active_support' require 'active_support/core_ext/object' module OmniAuth module Strategies class Crowd include OmniAuth::Strategy autoload :Configuration, 'omniauth/strategies/crowd/configuration' autoload :CrowdValidator, 'omniauth/strategies/crowd/crowd_validator' def initialize(app, options = {}, &block) options.symbolize_keys!() super(app, {:name=> :crowd}.merge(options), &block) @configuration = OmniAuth::Strategies::Crowd::Configuration.new(options) end protected def request_phase if env['REQUEST_METHOD'] == 'GET' get_credentials elsif (env['REQUEST_METHOD'] == 'POST') && (not request.params['username']) get_credentials else session['omniauth.crowd'] = {'username' => request['username'], 'password' => request['password']} redirect callback_url end end def get_credentials OmniAuth::Form.build(:title => (options[:title] || "Crowd Authentication")) do text_field 'Login', 'username' password_field 'Password', 'password' end.to_response end def callback_phase creds = session.delete 'omniauth.crowd' return fail!(:no_credentials) unless creds validator = CrowdValidator.new(@configuration, creds['username'], creds['password']) @user_info = validator.user_info return fail!(:invalid_credentials) if @user_info.nil? || @user_info.empty? super end def auth_hash OmniAuth::Utils.deep_merge(super, { 'uid' => @user_info.delete("user"), 'info' => @user_info }) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
omniauth_crowd-2.2.3 | lib/omniauth/strategies/crowd.rb |