Sha256: eeb6acf6587a21b4038d9da5867e55ba67c1d023241b7102640ce82aea27e17d
Contents?: true
Size: 1.53 KB
Versions: 2
Compression:
Stored size: 1.53 KB
Contents
require 'omniauth' 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) 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 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"), 'user_info' => @user_info }) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
omniauth_crowd-2.1.3 | lib/omniauth/strategies/crowd.rb |
omniauth_crowd-2.1.2 | lib/omniauth/strategies/crowd.rb |