class DeviseCasAuthenticatable::SingleSignOut::StoreSessionId
Constants
- CAS_LAST_TICKET
- CAS_TICKET_STORE
Public Class Methods
new(app)
click to toggle source
# File lib/devise_cas_authenticatable/single_sign_out/rack.rb, line 8 def initialize(app) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/devise_cas_authenticatable/single_sign_out/rack.rb, line 12 def call(env) store_session_id_for_cas_ticket(env) @app.call(env) end
Private Instance Methods
store_session_id_for_cas_ticket(env)
click to toggle source
# File lib/devise_cas_authenticatable/single_sign_out/rack.rb, line 18 def store_session_id_for_cas_ticket(env) request = Rack::Request.new(env) session = request.session if session.respond_to?(:id) # Rack > 1.5 session_id = session.id else # Compatible with old Rack requests session_id = env['rack.session.options'][:id] end cas_ticket_store = session[CAS_TICKET_STORE] if cas_ticket_store Rails.logger.info "Storing Session ID #{session_id} for ticket #{session[CAS_LAST_TICKET]}" ::DeviseCasAuthenticatable::SingleSignOut::Strategies.current_strategy.store_session_id_for_index(session[CAS_LAST_TICKET], session_id) session[CAS_TICKET_STORE] = false end end