authlogic 3.4.4 → 3.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 17095091ab5b4dcc1f590473c508b1399bc292a7
4
- data.tar.gz: f5007fb710d07bb9c3ccc6b0739f6fdf991784de
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: 8bffb67255fc9ec159c102e5a1fb08da08ccac95
4
+ data.tar.gz: c02b665debaece73cfe56a98779189f9020e014b
5
5
  SHA512:
6
- metadata.gz: f135d071afd20fe21989436341ecf97eeefbbf4c7b53b06a958e5ada571a8a564cbb0b913f164950d2e4fa197bf5a2d4f505e61002fc44c92d8f07995692ad65
7
- data.tar.gz: c1d77b76d9a8d781145a532bbfe43f48be0992990efc0d8b5689abc551072a8bf8c1661bfc93c91e837be6d7cef973946df7b8d443c9d9dc559d0ff9bda06319
6
+ metadata.gz: b31555535c3e0b37dca55ae8ed02dd38d2879793174c30c26c4047a7bbf9b4750c3b7a97b442db88608c1f60ba0d3f07de406f101a2ba6d05d96fcea7292763c
7
+ data.tar.gz: bc1bf62ba62ee81894742526f3993957421592663f30736da7681781ea663f01f582cf3b831da908e597f606f04c18aa003b0f501417d35e889194e82fa580a0
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.4.5 2015-03-01
4
+
5
+ * changes
6
+ * security-hardening fix and cleanup in persistence_token lookup
7
+ * security-hardening fix in perishable_token lookup (thx @tomekr)
8
+
9
+ ## 3.4.4 2014-12-23
10
+
11
+ * changes
12
+ * extract rw_config into an Authlogic::Config module
13
+ * improved the way config changes are made in tests
14
+ * fix for Rails 4.2 by extending ActiveModel
15
+
3
16
  ## 3.4.3 2014-10-08
4
17
 
5
18
  * changes
@@ -30,7 +43,7 @@
30
43
  * added request store for better concurency for threaded environments
31
44
 
32
45
  * changes
33
- * made scrypt the default crypto provider from SHA512
46
+ * BREAKING CHANGE: made scrypt the default crypto provider from SHA512 (https://github.com/binarylogic/authlogic#upgrading-to-authlogic-340)
34
47
  * ditched appraisal
35
48
  * officially support rails 4 (still supporting rails 3)
36
49
  * improved find_with_case default performance
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "authlogic"
6
- s.version = "3.4.4"
6
+ s.version = "3.4.5"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Ben Johnson"]
9
9
  s.email = ["bjohnson@binarylogic.com"]
@@ -65,7 +65,7 @@ module Authlogic
65
65
  age = age.to_i
66
66
 
67
67
  conditions_sql = "perishable_token = ?"
68
- conditions_subs = [token]
68
+ conditions_subs = [token.to_s]
69
69
 
70
70
  if column_names.include?("updated_at") && age > 0
71
71
  conditions_sql += " and updated_at > ?"
@@ -190,8 +190,8 @@ module Authlogic
190
190
  # Tries to validate the session from information in the cookie
191
191
  def persist_by_cookie
192
192
  persistence_token, record_id = cookie_credentials
193
- if !persistence_token.nil?
194
- record = record_id.nil? ? search_for_record("find_by_persistence_token", persistence_token) : search_for_record("find_by_#{klass.primary_key}", record_id)
193
+ if persistence_token.present?
194
+ record = search_for_record("find_by_#{klass.primary_key}", record_id)
195
195
  self.unauthorized_record = record if record && record.persistence_token == persistence_token
196
196
  valid?
197
197
  else
@@ -128,6 +128,14 @@ module SessionTest
128
128
  assert_equal ben, session.record
129
129
  end
130
130
 
131
+ def test_persist_persist_by_cookie_with_blank_persistence_token
132
+ ben = users(:ben)
133
+ ben.update_column(:persistence_token, "")
134
+ assert !UserSession.find
135
+ set_cookie_for(ben)
136
+ assert !UserSession.find
137
+ end
138
+
131
139
  def test_remember_me_expired
132
140
  ben = users(:ben)
133
141
  session = UserSession.new(ben)
@@ -163,15 +163,15 @@ class ActiveSupport::TestCase
163
163
  controller.http_user = controller.http_password = controller.realm = nil
164
164
  end
165
165
 
166
- def set_cookie_for(user, id = nil)
167
- controller.cookies["user_credentials"] = {:value => user.persistence_token, :expires => nil}
166
+ def set_cookie_for(user)
167
+ controller.cookies["user_credentials"] = {:value => "#{user.persistence_token}::#{user.id}", :expires => nil}
168
168
  end
169
169
 
170
170
  def unset_cookie
171
171
  controller.cookies["user_credentials"] = nil
172
172
  end
173
173
 
174
- def set_params_for(user, id = nil)
174
+ def set_params_for(user)
175
175
  controller.params["user_credentials"] = user.single_access_token
176
176
  end
177
177
 
@@ -187,7 +187,7 @@ class ActiveSupport::TestCase
187
187
  controller.request_content_type = nil
188
188
  end
189
189
 
190
- def set_session_for(user, id = nil)
190
+ def set_session_for(user)
191
191
  controller.session["user_credentials"] = user.persistence_token
192
192
  controller.session["user_credentials_id"] = user.id
193
193
  end
metadata CHANGED
@@ -1,99 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authlogic
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.4
4
+ version: 3.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Johnson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-23 00:00:00.000000000 Z
11
+ date: 2015-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
- version_requirements: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - '>='
18
- - !ruby/object:Gem::Version
19
- version: '3.2'
20
15
  requirement: !ruby/object:Gem::Requirement
21
16
  requirements:
22
- - - '>='
17
+ - - ! '>='
23
18
  - !ruby/object:Gem::Version
24
19
  version: '3.2'
25
- prerelease: false
26
20
  type: :runtime
27
- - !ruby/object:Gem::Dependency
28
- name: activesupport
21
+ prerelease: false
29
22
  version_requirements: !ruby/object:Gem::Requirement
30
23
  requirements:
31
- - - '>='
24
+ - - ! '>='
32
25
  - !ruby/object:Gem::Version
33
26
  version: '3.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
34
29
  requirement: !ruby/object:Gem::Requirement
35
30
  requirements:
36
- - - '>='
31
+ - - ! '>='
37
32
  - !ruby/object:Gem::Version
38
33
  version: '3.2'
39
- prerelease: false
40
34
  type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '3.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: request_store
43
- version_requirements: !ruby/object:Gem::Requirement
43
+ requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.0'
48
- requirement: !ruby/object:Gem::Requirement
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
49
51
  requirements:
50
52
  - - ~>
51
53
  - !ruby/object:Gem::Version
52
54
  version: '1.0'
53
- prerelease: false
54
- type: :runtime
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: scrypt
57
- version_requirements: !ruby/object:Gem::Requirement
57
+ requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.2'
62
- requirement: !ruby/object:Gem::Requirement
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
63
65
  requirements:
64
66
  - - ~>
65
67
  - !ruby/object:Gem::Version
66
68
  version: '1.2'
67
- prerelease: false
68
- type: :runtime
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bcrypt
71
- version_requirements: !ruby/object:Gem::Requirement
71
+ requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: '3.1'
76
- requirement: !ruby/object:Gem::Requirement
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
77
79
  requirements:
78
80
  - - ~>
79
81
  - !ruby/object:Gem::Version
80
82
  version: '3.1'
81
- prerelease: false
82
- type: :development
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: timecop
85
- version_requirements: !ruby/object:Gem::Requirement
85
+ requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ~>
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0.7'
90
- requirement: !ruby/object:Gem::Requirement
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
91
93
  requirements:
92
94
  - - ~>
93
95
  - !ruby/object:Gem::Version
94
96
  version: '0.7'
95
- prerelease: false
96
- type: :development
97
97
  description: A clean, simple, and unobtrusive ruby authentication solution.
98
98
  email:
99
99
  - bjohnson@binarylogic.com
@@ -237,24 +237,24 @@ homepage: http://github.com/binarylogic/authlogic
237
237
  licenses:
238
238
  - MIT
239
239
  metadata: {}
240
- post_install_message:
240
+ post_install_message:
241
241
  rdoc_options: []
242
242
  require_paths:
243
243
  - lib
244
244
  required_ruby_version: !ruby/object:Gem::Requirement
245
245
  requirements:
246
- - - '>='
246
+ - - ! '>='
247
247
  - !ruby/object:Gem::Version
248
248
  version: '0'
249
249
  required_rubygems_version: !ruby/object:Gem::Requirement
250
250
  requirements:
251
- - - '>='
251
+ - - ! '>='
252
252
  - !ruby/object:Gem::Version
253
253
  version: '0'
254
254
  requirements: []
255
- rubyforge_project:
256
- rubygems_version: 2.1.9
257
- signing_key:
255
+ rubyforge_project:
256
+ rubygems_version: 2.2.2
257
+ signing_key:
258
258
  specification_version: 4
259
259
  summary: A clean, simple, and unobtrusive ruby authentication solution.
260
260
  test_files: