Skip to content

Commit 49e811b

Browse files
committed
Remove deprecated ssid fallback code
1 parent db917f1 commit 49e811b

2 files changed

Lines changed: 4 additions & 89 deletions

File tree

lib/active_record/session_store/session.rb

Lines changed: 4 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -22,40 +22,14 @@ def data_column_size_limit
2222
@data_column_size_limit ||= columns_hash[data_column_name].limit
2323
end
2424

25-
# Hook to set up sessid compatibility.
2625
def find_by_session_id(session_id)
27-
SEMAPHORE.synchronize { setup_sessid_compatibility! }
28-
find_by_session_id(session_id)
26+
where(session_id: session_id).first
2927
end
3028

3129
private
3230
def session_id_column
3331
'session_id'
3432
end
35-
36-
# Compatibility with tables using sessid instead of session_id.
37-
def setup_sessid_compatibility!
38-
# Reset column info since it may be stale.
39-
reset_column_information
40-
if columns_hash['sessid']
41-
SessionStore.deprecator.warn <<~MSG
42-
Using a session ID column other than `session_id` is deprecated without replacement. You should migrate your session table to use `session_id`.
43-
MSG
44-
45-
def self.find_by_session_id(session_id)
46-
find_by_sessid(session_id)
47-
end
48-
49-
define_method(:session_id) { sessid }
50-
define_method(:session_id=) { |session_id| self.sessid = session_id }
51-
else
52-
class << self; remove_possible_method :find_by_session_id; end
53-
54-
def self.find_by_session_id(session_id)
55-
where(session_id: session_id).first
56-
end
57-
end
58-
end
5933
end
6034

6135
def initialize(*)
@@ -82,17 +56,13 @@ def loaded?
8256
# on all existing sessions in the database. Users will not lose their session
8357
# when this is done.
8458
def secure!
85-
session_id_column = if self.class.columns_hash['sessid']
86-
:sessid
87-
else
88-
:session_id
89-
end
90-
raw_session_id = read_attribute(session_id_column)
59+
raw_session_id = self.session_id
60+
9161
if ActionDispatch::Session::ActiveRecordStore.private_session_id?(raw_session_id)
9262
# is already private, nothing to do
9363
else
9464
session_id_object = Rack::Session::SessionId.new(raw_session_id)
95-
update_column(session_id_column, session_id_object.private_id)
65+
update_column(:session_id, session_id_object.private_id)
9666
end
9767
end
9868

test/session_test.rb

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -82,34 +82,6 @@ def test_hybrid_deserialization
8282
assert_equal s.data,Session.deserialize(sessions[0][Session.data_column_name])
8383
end
8484

85-
def test_find_by_sess_id_compat
86-
# Force class reload, as we need to redo the meta-programming
87-
ActiveRecord::SessionStore.send(:remove_const, :Session)
88-
load 'active_record/session_store/session.rb'
89-
90-
Session.reset_column_information
91-
klass = Class.new(Session) do
92-
def self.session_id_column
93-
'sessid'
94-
end
95-
end
96-
klass.create_table!
97-
98-
assert klass.columns_hash['sessid'], 'sessid column exists'
99-
session = klass.new(:data => 'hello')
100-
session.sessid = "100"
101-
session.save!
102-
103-
found = assert_deprecated(ActiveRecord::SessionStore.deprecator) do
104-
klass.find_by_session_id("100")
105-
end
106-
assert_equal session, found
107-
assert_equal session.sessid, found.session_id
108-
ensure
109-
klass.drop_table!
110-
Session.reset_column_information
111-
end
112-
11385
def test_find_by_session_id
11486
Session.create_table!
11587
session_id = "10"
@@ -140,33 +112,6 @@ def test_session_can_be_secured
140112
assert_equal secured, session.reload.read_attribute(:session_id)
141113
end
142114

143-
def test_session_can_be_secured_with_sessid_compatibility
144-
# Force class reload, as we need to redo the meta-programming
145-
ActiveRecord::SessionStore.send(:remove_const, :Session)
146-
load 'active_record/session_store/session.rb'
147-
148-
Session.reset_column_information
149-
klass = Class.new(Session) do
150-
def self.session_id_column
151-
'sessid'
152-
end
153-
end
154-
klass.create_table!
155-
session_id = 'unsecure'
156-
session = klass.create!(:data => 'world', :sessid => 'foo')
157-
session.update_column(:sessid, session_id)
158-
159-
assert_equal 'unsecure', session.read_attribute(:sessid)
160-
161-
session.secure!
162-
163-
secured = Rack::Session::SessionId.new(session_id).private_id
164-
assert_equal secured, session.reload.read_attribute(:sessid)
165-
ensure
166-
klass.drop_table!
167-
Session.reset_column_information
168-
end
169-
170115
def test_secure_is_idempotent
171116
Session.create_table!
172117
session_id = 'unsecure'

0 commit comments

Comments
 (0)