Class: Devise::Strategies::CasAuthenticatable

Inherits:
Base
  • Object
show all
Defined in:
lib/devise_cas_authenticatable/strategy.rb

Instance Method Summary collapse

Instance Method Details

#authenticate!Object

Try to authenticate a user using the CAS ticket passed in params. If the ticket is valid and the model’s authenticate_with_cas_ticket method returns a user, then return success. If the ticket is invalid, then either fail (if we’re just returning from the CAS server, based on the referrer) or attempt to redirect to the CAS server’s login URL.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/devise_cas_authenticatable/strategy.rb', line 17

def authenticate!
  request = Rack::Request.new(env)
  cas_details = request.session['cas']
  if cas_details
    resource = mapping.to.authenticate_with_cas_details(cas_details)
    if resource
      success!(resource)
    else
      username = cas_details['user']
      redirect!(::Devise.cas_unregistered_url(request.url, mapping), :username => username)
    end
  else
    # Throw to rack-cas to initiate a login
    rack_cas_authenticate_response = Rack::Response.new(nil, 401)
    custom!(rack_cas_authenticate_response.to_a)
    throw :warden
  end
end

#valid?Boolean

True if the mapping supports authenticate_with_cas_ticket.

Returns:

  • (Boolean)


7
8
9
10
# File 'lib/devise_cas_authenticatable/strategy.rb', line 7

def valid?
  request = Rack::Request.new(env)
  mapping.to.respond_to?(:authenticate_with_cas_details) && request.session['cas']
end