module Katello::UrlConstrainedCookieStoreV32X
Public Instance Methods
commit_session(env, status, headers, body)
click to toggle source
# File lib/katello/url_constrained_cookie_store.rb, line 30 def commit_session(env, status, headers, body) session = env['rack.session'] options = env['rack.session.options'] if options[:drop] || options[:renew] session_id = destroy_session(env, options[:id] || generate_sid, options) return [status, headers, body] unless session_id end return [status, headers, body] unless commit_session?(env, session, options) session.send(:load!) unless loaded_session?(session) session = session.to_hash session_id ||= options[:id] || generate_sid if !data = set_session(env, session_id, session, options) env["rack.errors"].puts("Warning! #{self.class.name} failed to save session. Content dropped.") elsif options[:defer] && !options[:renew] env["rack.errors"].puts("Defering cookie for #{session_id}") if $VERBOSE else cookie = create_cookie(ActionDispatch::Request.new(env), data, options) set_cookie(env, headers, cookie.merge!(options)) end [status, headers, body] end