authlogic 3.8.0 → 4.0.0
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 +7 -0
- data/.github/triage.md +87 -0
- data/.gitignore +2 -1
- data/.rubocop.yml +62 -6
- data/.rubocop_todo.yml +51 -267
- data/.travis.yml +4 -26
- data/CHANGELOG.md +226 -2
- data/CONTRIBUTING.md +15 -5
- data/Gemfile +2 -2
- data/README.md +183 -91
- data/Rakefile +1 -1
- data/UPGRADING.md +20 -0
- data/authlogic.gemspec +25 -16
- data/lib/authlogic.rb +45 -45
- data/lib/authlogic/acts_as_authentic/base.rb +18 -11
- data/lib/authlogic/acts_as_authentic/email.rb +32 -28
- data/lib/authlogic/acts_as_authentic/logged_in_status.rb +1 -1
- data/lib/authlogic/acts_as_authentic/login.rb +32 -42
- data/lib/authlogic/acts_as_authentic/magic_columns.rb +6 -6
- data/lib/authlogic/acts_as_authentic/password.rb +53 -31
- data/lib/authlogic/acts_as_authentic/perishable_token.rb +18 -17
- data/lib/authlogic/acts_as_authentic/persistence_token.rb +7 -12
- data/lib/authlogic/acts_as_authentic/queries/find_with_case.rb +64 -0
- data/lib/authlogic/acts_as_authentic/restful_authentication.rb +11 -3
- data/lib/authlogic/acts_as_authentic/session_maintenance.rb +30 -10
- data/lib/authlogic/acts_as_authentic/single_access_token.rb +4 -4
- data/lib/authlogic/authenticates_many/association.rb +3 -3
- data/lib/authlogic/authenticates_many/base.rb +2 -2
- data/lib/authlogic/config.rb +0 -1
- data/lib/authlogic/controller_adapters/abstract_adapter.rb +11 -4
- data/lib/authlogic/controller_adapters/rack_adapter.rb +7 -3
- data/lib/authlogic/controller_adapters/rails_adapter.rb +2 -0
- data/lib/authlogic/crypto_providers/aes256.rb +1 -1
- data/lib/authlogic/crypto_providers/bcrypt.rb +1 -1
- data/lib/authlogic/crypto_providers/scrypt.rb +6 -6
- data/lib/authlogic/crypto_providers/sha1.rb +10 -5
- data/lib/authlogic/crypto_providers/sha256.rb +11 -8
- data/lib/authlogic/crypto_providers/wordpress.rb +2 -2
- data/lib/authlogic/i18n.rb +4 -2
- data/lib/authlogic/random.rb +10 -28
- data/lib/authlogic/regex.rb +11 -8
- data/lib/authlogic/session/activation.rb +6 -3
- data/lib/authlogic/session/active_record_trickery.rb +13 -9
- data/lib/authlogic/session/base.rb +15 -4
- data/lib/authlogic/session/brute_force_protection.rb +14 -7
- data/lib/authlogic/session/callbacks.rb +53 -30
- data/lib/authlogic/session/cookies.rb +57 -16
- data/lib/authlogic/session/existence.rb +21 -11
- data/lib/authlogic/session/foundation.rb +56 -10
- data/lib/authlogic/session/http_auth.rb +15 -8
- data/lib/authlogic/session/klass.rb +7 -5
- data/lib/authlogic/session/magic_columns.rb +24 -11
- data/lib/authlogic/session/magic_states.rb +11 -4
- data/lib/authlogic/session/params.rb +6 -2
- data/lib/authlogic/session/password.rb +46 -73
- data/lib/authlogic/session/persistence.rb +11 -7
- data/lib/authlogic/session/priority_record.rb +7 -4
- data/lib/authlogic/session/scopes.rb +15 -6
- data/lib/authlogic/session/session.rb +20 -10
- data/lib/authlogic/session/timeout.rb +2 -2
- data/lib/authlogic/session/unauthorized_record.rb +1 -1
- data/lib/authlogic/session/validation.rb +1 -1
- data/lib/authlogic/test_case.rb +65 -2
- data/lib/authlogic/test_case/mock_controller.rb +5 -4
- data/lib/authlogic/test_case/mock_cookie_jar.rb +11 -2
- data/lib/authlogic/test_case/mock_request.rb +5 -1
- data/lib/authlogic/test_case/rails_request_adapter.rb +3 -2
- data/lib/authlogic/version.rb +16 -0
- data/test/acts_as_authentic_test/email_test.rb +33 -34
- data/test/acts_as_authentic_test/logged_in_status_test.rb +1 -1
- data/test/acts_as_authentic_test/login_test.rb +73 -78
- data/test/acts_as_authentic_test/password_test.rb +30 -18
- data/test/acts_as_authentic_test/perishable_token_test.rb +9 -3
- data/test/acts_as_authentic_test/persistence_token_test.rb +4 -0
- data/test/acts_as_authentic_test/session_maintenance_test.rb +66 -14
- data/test/adapter_test.rb +21 -0
- data/test/gemfiles/Gemfile.rails-4.2.x +2 -2
- data/test/gemfiles/Gemfile.rails-5.0.x +2 -2
- data/test/gemfiles/Gemfile.rails-master +6 -0
- data/test/i18n_test.rb +1 -1
- data/test/libs/company.rb +2 -2
- data/test/random_test.rb +7 -37
- data/test/session_test/active_record_trickery_test.rb +4 -3
- data/test/session_test/brute_force_protection_test.rb +8 -8
- data/test/session_test/callbacks_test.rb +1 -1
- data/test/session_test/cookies_test.rb +27 -4
- data/test/session_test/existence_test.rb +15 -4
- data/test/session_test/foundation_test.rb +16 -0
- data/test/session_test/http_auth_test.rb +3 -1
- data/test/session_test/magic_columns_test.rb +10 -12
- data/test/session_test/params_test.rb +4 -1
- data/test/session_test/password_test.rb +7 -7
- data/test/session_test/persistence_test.rb +1 -0
- data/test/session_test/scopes_test.rb +7 -7
- data/test/session_test/session_test.rb +2 -2
- data/test/session_test/timeout_test.rb +1 -1
- data/test/session_test/unauthorized_record_test.rb +1 -1
- data/test/test_helper.rb +111 -103
- metadata +68 -64
- data/test/gemfiles/Gemfile.rails-3.2.x +0 -7
- data/test/gemfiles/Gemfile.rails-4.0.x +0 -7
- data/test/gemfiles/Gemfile.rails-4.1.x +0 -7
@@ -6,7 +6,7 @@ module SessionTest
|
|
6
6
|
assert_nil Authlogic::Session::Base.scope
|
7
7
|
|
8
8
|
thread1 = Thread.new do
|
9
|
-
scope = { :
|
9
|
+
scope = { id: :scope1 }
|
10
10
|
Authlogic::Session::Base.send(:scope=, scope)
|
11
11
|
assert_equal scope, Authlogic::Session::Base.scope
|
12
12
|
end
|
@@ -15,7 +15,7 @@ module SessionTest
|
|
15
15
|
assert_nil Authlogic::Session::Base.scope
|
16
16
|
|
17
17
|
thread2 = Thread.new do
|
18
|
-
scope = { :
|
18
|
+
scope = { id: :scope2 }
|
19
19
|
Authlogic::Session::Base.send(:scope=, scope)
|
20
20
|
assert_equal scope, Authlogic::Session::Base.scope
|
21
21
|
end
|
@@ -27,17 +27,17 @@ module SessionTest
|
|
27
27
|
def test_with_scope_method
|
28
28
|
assert_raise(ArgumentError) { UserSession.with_scope }
|
29
29
|
|
30
|
-
UserSession.with_scope(:
|
31
|
-
assert_equal({ :
|
30
|
+
UserSession.with_scope(find_options: { conditions: "awesome = 1" }, id: "some_id") do
|
31
|
+
assert_equal({ find_options: { conditions: "awesome = 1" }, id: "some_id" }, UserSession.scope)
|
32
32
|
end
|
33
33
|
|
34
34
|
assert_nil UserSession.scope
|
35
35
|
end
|
36
36
|
|
37
37
|
def test_initialize
|
38
|
-
UserSession.with_scope(:
|
38
|
+
UserSession.with_scope(find_options: { conditions: "awesome = 1" }, id: "some_id") do
|
39
39
|
session = UserSession.new
|
40
|
-
assert_equal({ :
|
40
|
+
assert_equal({ find_options: { conditions: "awesome = 1" }, id: "some_id" }, session.scope)
|
41
41
|
session.id = :another_id
|
42
42
|
assert_equal "another_id_some_id_test", session.send(:build_key, "test")
|
43
43
|
end
|
@@ -51,7 +51,7 @@ module SessionTest
|
|
51
51
|
session = UserSession.new
|
52
52
|
assert_equal zack, session.send(:search_for_record, "find_by_login", zack.login)
|
53
53
|
|
54
|
-
session.scope = { :
|
54
|
+
session.scope = { find_options: { conditions: ["company_id = ?", binary_logic.id] } }
|
55
55
|
assert_nil session.send(:search_for_record, "find_by_login", zack.login)
|
56
56
|
|
57
57
|
assert_equal ben, session.send(:search_for_record, "find_by_login", ben.login)
|
@@ -25,14 +25,14 @@ module SessionTest
|
|
25
25
|
ben = users(:ben)
|
26
26
|
controller.session["user_credentials"] = 'neo'
|
27
27
|
controller.session["user_credentials_id"] = {
|
28
|
-
:
|
28
|
+
select: " *,'neo' AS persistence_token FROM users WHERE id = #{ben.id} limit 1 -- "
|
29
29
|
}
|
30
30
|
@user_session = UserSession.find
|
31
31
|
assert @user_session.blank?
|
32
32
|
end
|
33
33
|
|
34
34
|
def test_persist_persist_by_session_with_sql_injection_attack
|
35
|
-
controller.session["user_credentials"] = { :
|
35
|
+
controller.session["user_credentials"] = { select: "ABRA CADABRA" }
|
36
36
|
controller.session["user_credentials_id"] = nil
|
37
37
|
assert_nothing_raised do
|
38
38
|
@user_session = UserSession.find
|
@@ -70,7 +70,7 @@ module SessionTest
|
|
70
70
|
def test_successful_login
|
71
71
|
UserSession.logout_on_timeout = true
|
72
72
|
ben = users(:ben)
|
73
|
-
session = UserSession.create(:
|
73
|
+
session = UserSession.create(login: ben.login, password: "benrocks")
|
74
74
|
refute session.new_session?
|
75
75
|
session = UserSession.find
|
76
76
|
assert session
|
@@ -7,7 +7,7 @@ module SessionTest
|
|
7
7
|
session = UserSession.new
|
8
8
|
session.credentials = [ben]
|
9
9
|
assert_equal ben, session.unauthorized_record
|
10
|
-
assert_equal({ :
|
10
|
+
assert_equal({ unauthorized_record: "<protected>" }, session.credentials)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require "byebug"
|
1
2
|
require "rubygems"
|
2
3
|
require "minitest/autorun"
|
3
4
|
require "active_record"
|
@@ -8,7 +9,7 @@ require "i18n"
|
|
8
9
|
I18n.load_path << File.dirname(__FILE__) + '/i18n/lol.yml'
|
9
10
|
|
10
11
|
# ActiveRecord::Schema.verbose = false
|
11
|
-
ActiveRecord::Base.establish_connection(:
|
12
|
+
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
|
12
13
|
logger = Logger.new(STDOUT)
|
13
14
|
logger.level = Logger::FATAL
|
14
15
|
ActiveRecord::Base.logger = logger
|
@@ -22,7 +23,7 @@ if ActiveSupport.respond_to?(:test_order)
|
|
22
23
|
end
|
23
24
|
|
24
25
|
ActiveRecord::Base.default_timezone = :local
|
25
|
-
ActiveRecord::Schema.define(:
|
26
|
+
ActiveRecord::Schema.define(version: 1) do
|
26
27
|
create_table :companies do |t|
|
27
28
|
t.datetime :created_at
|
28
29
|
t.datetime :updated_at
|
@@ -36,7 +37,7 @@ ActiveRecord::Schema.define(:version => 1) do
|
|
36
37
|
t.string :name
|
37
38
|
end
|
38
39
|
|
39
|
-
create_table :projects_users, :
|
40
|
+
create_table :projects_users, id: false do |t|
|
40
41
|
t.integer :project_id
|
41
42
|
t.integer :user_id
|
42
43
|
end
|
@@ -44,7 +45,7 @@ ActiveRecord::Schema.define(:version => 1) do
|
|
44
45
|
create_table :users do |t|
|
45
46
|
t.datetime :created_at
|
46
47
|
t.datetime :updated_at
|
47
|
-
t.integer :lock_version, :
|
48
|
+
t.integer :lock_version, default: 0
|
48
49
|
t.integer :company_id
|
49
50
|
t.string :login
|
50
51
|
t.string :crypted_password
|
@@ -55,16 +56,16 @@ ActiveRecord::Schema.define(:version => 1) do
|
|
55
56
|
t.string :email
|
56
57
|
t.string :first_name
|
57
58
|
t.string :last_name
|
58
|
-
t.integer :login_count, :
|
59
|
-
t.integer :failed_login_count, :
|
59
|
+
t.integer :login_count, default: 0, null: false
|
60
|
+
t.integer :failed_login_count, default: 0, null: false
|
60
61
|
t.datetime :last_request_at
|
61
62
|
t.datetime :current_login_at
|
62
63
|
t.datetime :last_login_at
|
63
64
|
t.string :current_login_ip
|
64
65
|
t.string :last_login_ip
|
65
|
-
t.boolean :active, :
|
66
|
-
t.boolean :approved, :
|
67
|
-
t.boolean :confirmed, :
|
66
|
+
t.boolean :active, default: true
|
67
|
+
t.boolean :approved, default: true
|
68
|
+
t.boolean :confirmed, default: true
|
68
69
|
end
|
69
70
|
|
70
71
|
create_table :employees do |t|
|
@@ -77,7 +78,7 @@ ActiveRecord::Schema.define(:version => 1) do
|
|
77
78
|
t.string :persistence_token
|
78
79
|
t.string :first_name
|
79
80
|
t.string :last_name
|
80
|
-
t.integer :login_count, :
|
81
|
+
t.integer :login_count, default: 0, null: false
|
81
82
|
t.datetime :last_request_at
|
82
83
|
t.datetime :current_login_at
|
83
84
|
t.datetime :last_login_at
|
@@ -103,7 +104,7 @@ ActiveRecord::Schema.define(:version => 1) do
|
|
103
104
|
end
|
104
105
|
end
|
105
106
|
|
106
|
-
require_relative '../lib/authlogic'
|
107
|
+
require_relative '../lib/authlogic'
|
107
108
|
require_relative '../lib/authlogic/test_case'
|
108
109
|
require_relative 'libs/project'
|
109
110
|
require_relative 'libs/affiliate'
|
@@ -120,114 +121,121 @@ require_relative 'libs/company'
|
|
120
121
|
# thus openssl gem 2.0), it is more strict, and must be exactly 32 bytes.
|
121
122
|
Authlogic::CryptoProviders::AES256.key = ::OpenSSL::Random.random_bytes(32)
|
122
123
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
124
|
+
module ActiveSupport
|
125
|
+
class TestCase
|
126
|
+
include ActiveRecord::TestFixtures
|
127
|
+
self.fixture_path = File.dirname(__FILE__) + "/fixtures"
|
128
|
+
|
129
|
+
# use_transactional_fixtures= is deprecated and will be removed from Rails 5.1
|
130
|
+
# (use use_transactional_tests= instead)
|
131
|
+
if respond_to?(:use_transactional_tests=)
|
132
|
+
self.use_transactional_tests = false
|
133
|
+
else
|
134
|
+
self.use_transactional_fixtures = false
|
135
|
+
end
|
134
136
|
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
137
|
+
self.use_instantiated_fixtures = false
|
138
|
+
self.pre_loaded_fixtures = false
|
139
|
+
fixtures :all
|
140
|
+
setup :activate_authlogic
|
141
|
+
setup :config_setup
|
142
|
+
teardown :config_teardown
|
143
|
+
teardown { Timecop.return } # for tests that need to freeze the time
|
144
|
+
|
145
|
+
private
|
146
|
+
|
147
|
+
# Many of the tests change Authlogic config for the test models. Some tests
|
148
|
+
# were not resetting the config after tests, which didn't surface as broken
|
149
|
+
# tests until Rails 4.1 was added for testing. This ensures that all the
|
150
|
+
# models start tests with their original config.
|
151
|
+
def config_setup
|
152
|
+
[Project, Affiliate, Employee, EmployeeSession, Ldaper, User, UserSession, Company].each do |model|
|
153
|
+
unless model.respond_to?(:original_acts_as_authentic_config)
|
154
|
+
model.class_attribute :original_acts_as_authentic_config
|
155
|
+
end
|
156
|
+
model.original_acts_as_authentic_config = model.acts_as_authentic_config
|
157
|
+
end
|
153
158
|
end
|
154
|
-
end
|
155
159
|
|
156
|
-
|
157
|
-
|
158
|
-
|
160
|
+
def config_teardown
|
161
|
+
[Project, Affiliate, Employee, EmployeeSession, Ldaper, User, UserSession, Company].each do |model|
|
162
|
+
model.acts_as_authentic_config = model.original_acts_as_authentic_config
|
163
|
+
end
|
159
164
|
end
|
160
|
-
end
|
161
165
|
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
166
|
+
def password_for(user)
|
167
|
+
case user
|
168
|
+
when users(:ben)
|
169
|
+
"benrocks"
|
170
|
+
when users(:zack)
|
171
|
+
"zackrocks"
|
172
|
+
when users(:aaron)
|
173
|
+
"aaronrocks"
|
174
|
+
end
|
170
175
|
end
|
171
|
-
end
|
172
176
|
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
+
def http_basic_auth_for(user = nil)
|
178
|
+
unless user.blank?
|
179
|
+
controller.http_user = user.login
|
180
|
+
controller.http_password = password_for(user)
|
181
|
+
end
|
182
|
+
yield
|
183
|
+
controller.http_user = controller.http_password = controller.realm = nil
|
177
184
|
end
|
178
|
-
yield
|
179
|
-
controller.http_user = controller.http_password = controller.realm = nil
|
180
|
-
end
|
181
185
|
|
182
|
-
|
183
|
-
|
184
|
-
|
186
|
+
def set_cookie_for(user)
|
187
|
+
controller.cookies["user_credentials"] = {
|
188
|
+
value: "#{user.persistence_token}::#{user.id}",
|
189
|
+
expires: nil
|
190
|
+
}
|
191
|
+
end
|
185
192
|
|
186
|
-
|
187
|
-
|
188
|
-
|
193
|
+
def unset_cookie
|
194
|
+
controller.cookies["user_credentials"] = nil
|
195
|
+
end
|
189
196
|
|
190
|
-
|
191
|
-
|
192
|
-
|
197
|
+
def set_params_for(user)
|
198
|
+
controller.params["user_credentials"] = user.single_access_token
|
199
|
+
end
|
193
200
|
|
194
|
-
|
195
|
-
|
196
|
-
|
201
|
+
def unset_params
|
202
|
+
controller.params["user_credentials"] = nil
|
203
|
+
end
|
197
204
|
|
198
|
-
|
199
|
-
|
200
|
-
|
205
|
+
def set_request_content_type(type)
|
206
|
+
controller.request_content_type = type
|
207
|
+
end
|
201
208
|
|
202
|
-
|
203
|
-
|
204
|
-
|
209
|
+
def unset_request_content_type
|
210
|
+
controller.request_content_type = nil
|
211
|
+
end
|
205
212
|
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
213
|
+
def session_credentials_prefix(scope_record)
|
214
|
+
if scope_record.nil?
|
215
|
+
""
|
216
|
+
else
|
217
|
+
format(
|
218
|
+
"%s_%d_",
|
219
|
+
scope_record.class.model_name.name.underscore,
|
220
|
+
scope_record.id
|
221
|
+
)
|
222
|
+
end
|
215
223
|
end
|
216
|
-
end
|
217
224
|
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
225
|
+
# Sets the session variables that `record` (eg. a `User`) would have after
|
226
|
+
# logging in.
|
227
|
+
#
|
228
|
+
# If `record` belongs to an `authenticates_many` association that uses the
|
229
|
+
# `scope_cookies` option, then a `scope_record` can be provided.
|
230
|
+
def set_session_for(record, scope_record = nil)
|
231
|
+
prefix = session_credentials_prefix(scope_record)
|
232
|
+
record_class_name = record.class.model_name.name.underscore
|
233
|
+
controller.session["#{prefix}#{record_class_name}_credentials"] = record.persistence_token
|
234
|
+
controller.session["#{prefix}#{record_class_name}_credentials_id"] = record.id
|
235
|
+
end
|
229
236
|
|
230
|
-
|
231
|
-
|
232
|
-
|
237
|
+
def unset_session
|
238
|
+
controller.session["user_credentials"] = controller.session["user_credentials_id"] = nil
|
239
|
+
end
|
240
|
+
end
|
233
241
|
end
|
metadata
CHANGED
@@ -1,164 +1,169 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: authlogic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 4.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ben Johnson
|
8
|
+
- Tieg Zaharia
|
9
|
+
- Jared Beck
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2018-
|
13
|
+
date: 2018-03-18 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: activerecord
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
22
|
-
- - <
|
21
|
+
version: '4.2'
|
22
|
+
- - "<"
|
23
23
|
- !ruby/object:Gem::Version
|
24
24
|
version: '5.3'
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
27
|
version_requirements: !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
29
28
|
requirements:
|
30
|
-
- -
|
29
|
+
- - ">="
|
31
30
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
33
|
-
- - <
|
31
|
+
version: '4.2'
|
32
|
+
- - "<"
|
34
33
|
- !ruby/object:Gem::Version
|
35
34
|
version: '5.3'
|
36
35
|
- !ruby/object:Gem::Dependency
|
37
36
|
name: activesupport
|
38
37
|
requirement: !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
38
|
requirements:
|
41
|
-
- -
|
39
|
+
- - ">="
|
42
40
|
- !ruby/object:Gem::Version
|
43
|
-
version: '
|
44
|
-
- - <
|
41
|
+
version: '4.2'
|
42
|
+
- - "<"
|
45
43
|
- !ruby/object:Gem::Version
|
46
44
|
version: '5.3'
|
47
45
|
type: :runtime
|
48
46
|
prerelease: false
|
49
47
|
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
48
|
requirements:
|
52
|
-
- -
|
49
|
+
- - ">="
|
53
50
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
55
|
-
- - <
|
51
|
+
version: '4.2'
|
52
|
+
- - "<"
|
56
53
|
- !ruby/object:Gem::Version
|
57
54
|
version: '5.3'
|
58
55
|
- !ruby/object:Gem::Dependency
|
59
56
|
name: request_store
|
60
57
|
requirement: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
58
|
requirements:
|
63
|
-
- - ~>
|
59
|
+
- - "~>"
|
64
60
|
- !ruby/object:Gem::Version
|
65
61
|
version: '1.0'
|
66
62
|
type: :runtime
|
67
63
|
prerelease: false
|
68
64
|
version_requirements: !ruby/object:Gem::Requirement
|
69
|
-
none: false
|
70
65
|
requirements:
|
71
|
-
- - ~>
|
66
|
+
- - "~>"
|
72
67
|
- !ruby/object:Gem::Version
|
73
68
|
version: '1.0'
|
74
69
|
- !ruby/object:Gem::Dependency
|
75
70
|
name: scrypt
|
76
71
|
requirement: !ruby/object:Gem::Requirement
|
77
|
-
none: false
|
78
72
|
requirements:
|
79
|
-
- -
|
73
|
+
- - ">="
|
80
74
|
- !ruby/object:Gem::Version
|
81
75
|
version: '1.2'
|
82
|
-
- - <
|
76
|
+
- - "<"
|
83
77
|
- !ruby/object:Gem::Version
|
84
78
|
version: '4.0'
|
85
79
|
type: :runtime
|
86
80
|
prerelease: false
|
87
81
|
version_requirements: !ruby/object:Gem::Requirement
|
88
|
-
none: false
|
89
82
|
requirements:
|
90
|
-
- -
|
83
|
+
- - ">="
|
91
84
|
- !ruby/object:Gem::Version
|
92
85
|
version: '1.2'
|
93
|
-
- - <
|
86
|
+
- - "<"
|
94
87
|
- !ruby/object:Gem::Version
|
95
88
|
version: '4.0'
|
96
89
|
- !ruby/object:Gem::Dependency
|
97
90
|
name: bcrypt
|
98
91
|
requirement: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
92
|
requirements:
|
101
|
-
- - ~>
|
93
|
+
- - "~>"
|
102
94
|
- !ruby/object:Gem::Version
|
103
95
|
version: '3.1'
|
104
96
|
type: :development
|
105
97
|
prerelease: false
|
106
98
|
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
none: false
|
108
99
|
requirements:
|
109
|
-
- - ~>
|
100
|
+
- - "~>"
|
110
101
|
- !ruby/object:Gem::Version
|
111
102
|
version: '3.1'
|
112
103
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
104
|
+
name: byebug
|
114
105
|
requirement: !ruby/object:Gem::Requirement
|
115
|
-
none: false
|
116
106
|
requirements:
|
117
|
-
- - ~>
|
107
|
+
- - "~>"
|
118
108
|
- !ruby/object:Gem::Version
|
119
|
-
version: '0
|
109
|
+
version: '10.0'
|
120
110
|
type: :development
|
121
111
|
prerelease: false
|
122
112
|
version_requirements: !ruby/object:Gem::Requirement
|
123
|
-
none: false
|
124
113
|
requirements:
|
125
|
-
- - ~>
|
114
|
+
- - "~>"
|
126
115
|
- !ruby/object:Gem::Version
|
127
|
-
version: '0
|
116
|
+
version: '10.0'
|
128
117
|
- !ruby/object:Gem::Dependency
|
129
118
|
name: rubocop
|
130
119
|
requirement: !ruby/object:Gem::Requirement
|
131
|
-
none: false
|
132
120
|
requirements:
|
133
|
-
- - ~>
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: 0.51.0
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: 0.51.0
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: timecop
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
134
136
|
- !ruby/object:Gem::Version
|
135
|
-
version: 0.
|
137
|
+
version: '0.7'
|
136
138
|
type: :development
|
137
139
|
prerelease: false
|
138
140
|
version_requirements: !ruby/object:Gem::Requirement
|
139
|
-
none: false
|
140
141
|
requirements:
|
141
|
-
- - ~>
|
142
|
+
- - "~>"
|
142
143
|
- !ruby/object:Gem::Version
|
143
|
-
version: 0.
|
144
|
+
version: '0.7'
|
144
145
|
description:
|
145
146
|
email:
|
146
147
|
- bjohnson@binarylogic.com
|
148
|
+
- tieg.zaharia@gmail.com
|
149
|
+
- jared@jaredbeck.com
|
147
150
|
executables: []
|
148
151
|
extensions: []
|
149
152
|
extra_rdoc_files: []
|
150
153
|
files:
|
151
|
-
- .github/ISSUE_TEMPLATE.md
|
152
|
-
- .
|
153
|
-
- .
|
154
|
-
- .
|
155
|
-
- .
|
154
|
+
- ".github/ISSUE_TEMPLATE.md"
|
155
|
+
- ".github/triage.md"
|
156
|
+
- ".gitignore"
|
157
|
+
- ".rubocop.yml"
|
158
|
+
- ".rubocop_todo.yml"
|
159
|
+
- ".travis.yml"
|
156
160
|
- CHANGELOG.md
|
157
161
|
- CONTRIBUTING.md
|
158
162
|
- Gemfile
|
159
163
|
- LICENSE
|
160
164
|
- README.md
|
161
165
|
- Rakefile
|
166
|
+
- UPGRADING.md
|
162
167
|
- authlogic.gemspec
|
163
168
|
- lib/authlogic.rb
|
164
169
|
- lib/authlogic/acts_as_authentic/base.rb
|
@@ -169,6 +174,7 @@ files:
|
|
169
174
|
- lib/authlogic/acts_as_authentic/password.rb
|
170
175
|
- lib/authlogic/acts_as_authentic/perishable_token.rb
|
171
176
|
- lib/authlogic/acts_as_authentic/persistence_token.rb
|
177
|
+
- lib/authlogic/acts_as_authentic/queries/find_with_case.rb
|
172
178
|
- lib/authlogic/acts_as_authentic/restful_authentication.rb
|
173
179
|
- lib/authlogic/acts_as_authentic/session_maintenance.rb
|
174
180
|
- lib/authlogic/acts_as_authentic/single_access_token.rb
|
@@ -222,6 +228,7 @@ files:
|
|
222
228
|
- lib/authlogic/test_case/mock_logger.rb
|
223
229
|
- lib/authlogic/test_case/mock_request.rb
|
224
230
|
- lib/authlogic/test_case/rails_request_adapter.rb
|
231
|
+
- lib/authlogic/version.rb
|
225
232
|
- test/acts_as_authentic_test/base_test.rb
|
226
233
|
- test/acts_as_authentic_test/email_test.rb
|
227
234
|
- test/acts_as_authentic_test/logged_in_status_test.rb
|
@@ -233,6 +240,7 @@ files:
|
|
233
240
|
- test/acts_as_authentic_test/restful_authentication_test.rb
|
234
241
|
- test/acts_as_authentic_test/session_maintenance_test.rb
|
235
242
|
- test/acts_as_authentic_test/single_access_test.rb
|
243
|
+
- test/adapter_test.rb
|
236
244
|
- test/authenticates_many_test.rb
|
237
245
|
- test/config_test.rb
|
238
246
|
- test/crypto_provider_test/aes256_test.rb
|
@@ -245,13 +253,11 @@ files:
|
|
245
253
|
- test/fixtures/employees.yml
|
246
254
|
- test/fixtures/projects.yml
|
247
255
|
- test/fixtures/users.yml
|
248
|
-
- test/gemfiles/Gemfile.rails-3.2.x
|
249
|
-
- test/gemfiles/Gemfile.rails-4.0.x
|
250
|
-
- test/gemfiles/Gemfile.rails-4.1.x
|
251
256
|
- test/gemfiles/Gemfile.rails-4.2.x
|
252
257
|
- test/gemfiles/Gemfile.rails-5.0.x
|
253
258
|
- test/gemfiles/Gemfile.rails-5.1.x
|
254
259
|
- test/gemfiles/Gemfile.rails-5.2.x
|
260
|
+
- test/gemfiles/Gemfile.rails-master
|
255
261
|
- test/i18n/lol.yml
|
256
262
|
- test/i18n_test.rb
|
257
263
|
- test/libs/affiliate.rb
|
@@ -289,27 +295,26 @@ files:
|
|
289
295
|
homepage: http://github.com/binarylogic/authlogic
|
290
296
|
licenses:
|
291
297
|
- MIT
|
298
|
+
metadata: {}
|
292
299
|
post_install_message:
|
293
300
|
rdoc_options: []
|
294
301
|
require_paths:
|
295
302
|
- lib
|
296
303
|
required_ruby_version: !ruby/object:Gem::Requirement
|
297
|
-
none: false
|
298
304
|
requirements:
|
299
|
-
- -
|
305
|
+
- - ">="
|
300
306
|
- !ruby/object:Gem::Version
|
301
|
-
version:
|
307
|
+
version: 2.2.0
|
302
308
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
303
|
-
none: false
|
304
309
|
requirements:
|
305
|
-
- -
|
310
|
+
- - ">="
|
306
311
|
- !ruby/object:Gem::Version
|
307
312
|
version: '0'
|
308
313
|
requirements: []
|
309
314
|
rubyforge_project:
|
310
|
-
rubygems_version:
|
315
|
+
rubygems_version: 2.7.6
|
311
316
|
signing_key:
|
312
|
-
specification_version:
|
317
|
+
specification_version: 4
|
313
318
|
summary: A clean, simple, and unobtrusive ruby authentication solution.
|
314
319
|
test_files:
|
315
320
|
- test/acts_as_authentic_test/base_test.rb
|
@@ -323,6 +328,7 @@ test_files:
|
|
323
328
|
- test/acts_as_authentic_test/restful_authentication_test.rb
|
324
329
|
- test/acts_as_authentic_test/session_maintenance_test.rb
|
325
330
|
- test/acts_as_authentic_test/single_access_test.rb
|
331
|
+
- test/adapter_test.rb
|
326
332
|
- test/authenticates_many_test.rb
|
327
333
|
- test/config_test.rb
|
328
334
|
- test/crypto_provider_test/aes256_test.rb
|
@@ -335,13 +341,11 @@ test_files:
|
|
335
341
|
- test/fixtures/employees.yml
|
336
342
|
- test/fixtures/projects.yml
|
337
343
|
- test/fixtures/users.yml
|
338
|
-
- test/gemfiles/Gemfile.rails-3.2.x
|
339
|
-
- test/gemfiles/Gemfile.rails-4.0.x
|
340
|
-
- test/gemfiles/Gemfile.rails-4.1.x
|
341
344
|
- test/gemfiles/Gemfile.rails-4.2.x
|
342
345
|
- test/gemfiles/Gemfile.rails-5.0.x
|
343
346
|
- test/gemfiles/Gemfile.rails-5.1.x
|
344
347
|
- test/gemfiles/Gemfile.rails-5.2.x
|
348
|
+
- test/gemfiles/Gemfile.rails-master
|
345
349
|
- test/i18n/lol.yml
|
346
350
|
- test/i18n_test.rb
|
347
351
|
- test/libs/affiliate.rb
|