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
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