module RackCAS::RedisStore

Public Class Methods

destroy_session_by_cas_ticket(cas_ticket) click to toggle source
# File lib/rack-cas/session_store/redis.rb, line 43
def self.destroy_session_by_cas_ticket(cas_ticket)
  affected = Session.destroy_by_cas_ticket(cas_ticket)
  affected == 1
end
prune(after = nil) click to toggle source

we don't need to prune because the keys expire automatically

# File lib/rack-cas/session_store/redis.rb, line 49
def self.prune(after = nil)
end

Private Instance Methods

delete_session(env, sid, options) click to toggle source

Rack 2.0 method

# File lib/rack-cas/session_store/redis.rb, line 82
def delete_session(env, sid, options)
  Session.delete(sid)

  options[:drop] ? nil : generate_sid
end
destroy_session(env, sid, options) click to toggle source

Rack 1.* method

# File lib/rack-cas/session_store/redis.rb, line 97
def destroy_session(env, sid, options) # rack 1.x compatibilty
  delete_session(Rack::Request.new(env), sid, options)
end
find_session(env, sid) click to toggle source

Rack 2.0 method

# File lib/rack-cas/session_store/redis.rb, line 56
def find_session(env, sid)
  if sid.nil?
    sid = generate_sid
    data = nil
  else
    unless session = Session.find_by_id(sid)
      session = {}
      # force generation of new sid since there is no associated session
      sid = generate_sid
    end
    data = unpack(session['data'])
  end

  [sid, data]
end
Also aliased as: get_session
get_session(env, sid)

Rack 1.* method

Alias for: find_session
pack(data) click to toggle source
# File lib/rack-cas/session_store/redis.rb, line 101
def pack(data)
  ::Base64.encode64(Marshal.dump(data)) if data
end
set_session(env, sid, session_data, options) click to toggle source

Rack 1.* method

# File lib/rack-cas/session_store/redis.rb, line 92
def set_session(env, sid, session_data, options) # rack 1.x compatibilty
  write_session(Rack::Request.new(env), sid, session_data, options)
end
unpack(data) click to toggle source
# File lib/rack-cas/session_store/redis.rb, line 105
def unpack(data)
  Marshal.load(::Base64.decode64(data)) if data
end
write_session(env, sid, session_data, options) click to toggle source

Rack 2.0 method

# File lib/rack-cas/session_store/redis.rb, line 73
def write_session(env, sid, session_data, options)
  cas_ticket = (session_data['cas']['ticket'] unless session_data['cas'].nil?)

  success = Session.write(session_id: sid, data: pack(session_data), cas_ticket: cas_ticket)

  success ? sid : false
end