Sha256: e038978ae1a58c4eca85561e5e1412cc9bc2cb78ad5db10bb0fa7ae03c3389fc

Contents?: true

Size: 1.11 KB

Versions: 9

Compression:

Stored size: 1.11 KB

Contents

require 'casserver/authenticators/base'

begin
  require 'active_record'
rescue LoadError
  require 'rubygems'
  require 'active_record'
end

class CASServer::Authenticators::SQL < CASServer::Authenticators::Base

  def validate(credentials)
    read_standard_credentials(credentials)
    
    raise CASServer::AuthenticatorError, "Cannot validate credentials because the authenticator hasn't yet been configured" unless @options
    raise CASServer::AuthenticatorError, "Invalid authenticator configuration!" unless @options[:database]
    
    CASUser.establish_connection @options[:database]
    CASUser.set_table_name @options[:user_table] || "users"
    
    username_column = @options[:username_column] || 'username'
    password_column = @options[:password_column] || 'password'
    
    results = CASUser.find(:all, :conditions => ["#{username_column} = ? AND #{password_column} = ?", @username, @password])
    
    if results.size > 0
      $LOG.warn("Multiple matches found for user '#{@username}'") if results.size > 1
      return true
    else
      return false
    end
  end
  
  class CASUser < ActiveRecord::Base
  end

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
rubycas-server-0.6.0 lib/casserver/authenticators/sql.rb
rubycas-server-0.5.0 lib/casserver/authenticators/sql.rb
rubycas-server-0.5.0.193 lib/casserver/authenticators/sql.rb
rubycas-server-0.5.1 lib/casserver/authenticators/sql.rb
rubycas-server-0.4.0 lib/casserver/authenticators/sql.rb
rubycas-server-0.4.2 lib/casserver/authenticators/sql.rb
rubycas-server-0.3.0 lib/casserver/authenticators/sql.rb
rubycas-server-0.5.0.186 lib/casserver/authenticators/sql.rb
rubycas-server-0.4.1 lib/casserver/authenticators/sql.rb