30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/katello/url_constrained_cookie_store.rb', line 30
def commit_session(env, status, , 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, , body] unless session_id
end
return [status, , 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, , cookie.merge!(options))
end
[status, , body]
end
|