authlogic 3.8.0 → 6.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/lib/authlogic/acts_as_authentic/base.rb +33 -36
- data/lib/authlogic/acts_as_authentic/email.rb +8 -141
- data/lib/authlogic/acts_as_authentic/logged_in_status.rb +17 -10
- data/lib/authlogic/acts_as_authentic/login.rb +14 -165
- data/lib/authlogic/acts_as_authentic/magic_columns.rb +13 -10
- data/lib/authlogic/acts_as_authentic/password.rb +186 -254
- data/lib/authlogic/acts_as_authentic/perishable_token.rb +30 -22
- data/lib/authlogic/acts_as_authentic/persistence_token.rb +19 -18
- data/lib/authlogic/acts_as_authentic/queries/case_sensitivity.rb +53 -0
- data/lib/authlogic/acts_as_authentic/queries/find_with_case.rb +83 -0
- data/lib/authlogic/acts_as_authentic/session_maintenance.rb +94 -62
- data/lib/authlogic/acts_as_authentic/single_access_token.rb +28 -14
- data/lib/authlogic/config.rb +29 -10
- data/lib/authlogic/controller_adapters/abstract_adapter.rb +43 -13
- data/lib/authlogic/controller_adapters/rack_adapter.rb +11 -5
- data/lib/authlogic/controller_adapters/rails_adapter.rb +11 -29
- data/lib/authlogic/controller_adapters/sinatra_adapter.rb +8 -2
- data/lib/authlogic/cookie_credentials.rb +63 -0
- data/lib/authlogic/crypto_providers/bcrypt.rb +24 -18
- data/lib/authlogic/crypto_providers/md5/v2.rb +35 -0
- data/lib/authlogic/crypto_providers/md5.rb +8 -6
- data/lib/authlogic/crypto_providers/scrypt.rb +24 -17
- data/lib/authlogic/crypto_providers/sha1/v2.rb +41 -0
- data/lib/authlogic/crypto_providers/sha1.rb +12 -5
- data/lib/authlogic/crypto_providers/sha256/v2.rb +58 -0
- data/lib/authlogic/crypto_providers/sha256.rb +18 -9
- data/lib/authlogic/crypto_providers/sha512/v2.rb +39 -0
- data/lib/authlogic/crypto_providers/sha512.rb +9 -26
- data/lib/authlogic/crypto_providers.rb +77 -1
- data/lib/authlogic/errors.rb +35 -0
- data/lib/authlogic/i18n/translator.rb +4 -1
- data/lib/authlogic/i18n.rb +29 -20
- data/lib/authlogic/random.rb +12 -28
- data/lib/authlogic/session/base.rb +2087 -33
- data/lib/authlogic/session/magic_column/assigns_last_request_at.rb +46 -0
- data/lib/authlogic/test_case/mock_controller.rb +7 -4
- data/lib/authlogic/test_case/mock_cookie_jar.rb +19 -3
- data/lib/authlogic/test_case/mock_logger.rb +2 -0
- data/lib/authlogic/test_case/mock_request.rb +8 -3
- data/lib/authlogic/test_case/rails_request_adapter.rb +5 -2
- data/lib/authlogic/test_case.rb +74 -2
- data/lib/authlogic/version.rb +22 -0
- data/lib/authlogic.rb +33 -54
- metadata +208 -234
- data/.github/ISSUE_TEMPLATE.md +0 -13
- data/.gitignore +0 -14
- data/.rubocop.yml +0 -33
- data/.rubocop_todo.yml +0 -391
- data/.travis.yml +0 -48
- data/CHANGELOG.md +0 -5
- data/CONTRIBUTING.md +0 -60
- data/Gemfile +0 -5
- data/LICENSE +0 -20
- data/README.md +0 -294
- data/Rakefile +0 -21
- data/authlogic.gemspec +0 -27
- data/lib/authlogic/acts_as_authentic/restful_authentication.rb +0 -70
- data/lib/authlogic/acts_as_authentic/validations_scope.rb +0 -32
- data/lib/authlogic/authenticates_many/association.rb +0 -50
- data/lib/authlogic/authenticates_many/base.rb +0 -65
- data/lib/authlogic/crypto_providers/aes256.rb +0 -66
- data/lib/authlogic/crypto_providers/wordpress.rb +0 -43
- data/lib/authlogic/regex.rb +0 -48
- data/lib/authlogic/session/activation.rb +0 -70
- data/lib/authlogic/session/active_record_trickery.rb +0 -61
- data/lib/authlogic/session/brute_force_protection.rb +0 -120
- data/lib/authlogic/session/callbacks.rb +0 -105
- data/lib/authlogic/session/cookies.rb +0 -244
- data/lib/authlogic/session/existence.rb +0 -93
- data/lib/authlogic/session/foundation.rb +0 -55
- data/lib/authlogic/session/http_auth.rb +0 -100
- data/lib/authlogic/session/id.rb +0 -48
- data/lib/authlogic/session/klass.rb +0 -70
- data/lib/authlogic/session/magic_columns.rb +0 -116
- data/lib/authlogic/session/magic_states.rb +0 -76
- data/lib/authlogic/session/params.rb +0 -116
- data/lib/authlogic/session/password.rb +0 -308
- data/lib/authlogic/session/perishable_token.rb +0 -23
- data/lib/authlogic/session/persistence.rb +0 -71
- data/lib/authlogic/session/priority_record.rb +0 -35
- data/lib/authlogic/session/scopes.rb +0 -119
- data/lib/authlogic/session/session.rb +0 -67
- data/lib/authlogic/session/timeout.rb +0 -103
- data/lib/authlogic/session/unauthorized_record.rb +0 -51
- data/lib/authlogic/session/validation.rb +0 -93
- data/test/acts_as_authentic_test/base_test.rb +0 -25
- data/test/acts_as_authentic_test/email_test.rb +0 -240
- data/test/acts_as_authentic_test/logged_in_status_test.rb +0 -62
- data/test/acts_as_authentic_test/login_test.rb +0 -156
- data/test/acts_as_authentic_test/magic_columns_test.rb +0 -27
- data/test/acts_as_authentic_test/password_test.rb +0 -249
- data/test/acts_as_authentic_test/perishable_token_test.rb +0 -90
- data/test/acts_as_authentic_test/persistence_token_test.rb +0 -56
- data/test/acts_as_authentic_test/restful_authentication_test.rb +0 -37
- data/test/acts_as_authentic_test/session_maintenance_test.rb +0 -96
- data/test/acts_as_authentic_test/single_access_test.rb +0 -44
- data/test/authenticates_many_test.rb +0 -31
- data/test/config_test.rb +0 -36
- data/test/crypto_provider_test/aes256_test.rb +0 -14
- data/test/crypto_provider_test/bcrypt_test.rb +0 -14
- data/test/crypto_provider_test/scrypt_test.rb +0 -14
- data/test/crypto_provider_test/sha1_test.rb +0 -23
- data/test/crypto_provider_test/sha256_test.rb +0 -14
- data/test/crypto_provider_test/sha512_test.rb +0 -14
- data/test/fixtures/companies.yml +0 -5
- data/test/fixtures/employees.yml +0 -17
- data/test/fixtures/projects.yml +0 -3
- data/test/fixtures/users.yml +0 -41
- 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
- data/test/gemfiles/Gemfile.rails-4.2.x +0 -7
- data/test/gemfiles/Gemfile.rails-5.0.x +0 -6
- data/test/gemfiles/Gemfile.rails-5.1.x +0 -6
- data/test/gemfiles/Gemfile.rails-5.2.x +0 -6
- data/test/i18n/lol.yml +0 -4
- data/test/i18n_test.rb +0 -33
- data/test/libs/affiliate.rb +0 -7
- data/test/libs/company.rb +0 -6
- data/test/libs/employee.rb +0 -7
- data/test/libs/employee_session.rb +0 -2
- data/test/libs/ldaper.rb +0 -3
- data/test/libs/project.rb +0 -3
- data/test/libs/user.rb +0 -7
- data/test/libs/user_session.rb +0 -25
- data/test/random_test.rb +0 -43
- data/test/session_test/activation_test.rb +0 -43
- data/test/session_test/active_record_trickery_test.rb +0 -75
- data/test/session_test/brute_force_protection_test.rb +0 -108
- data/test/session_test/callbacks_test.rb +0 -34
- data/test/session_test/cookies_test.rb +0 -201
- data/test/session_test/credentials_test.rb +0 -0
- data/test/session_test/existence_test.rb +0 -75
- data/test/session_test/foundation_test.rb +0 -6
- data/test/session_test/http_auth_test.rb +0 -56
- data/test/session_test/id_test.rb +0 -17
- data/test/session_test/klass_test.rb +0 -40
- data/test/session_test/magic_columns_test.rb +0 -62
- data/test/session_test/magic_states_test.rb +0 -58
- data/test/session_test/params_test.rb +0 -53
- data/test/session_test/password_test.rb +0 -105
- data/test/session_test/perishability_test.rb +0 -15
- data/test/session_test/persistence_test.rb +0 -32
- data/test/session_test/scopes_test.rb +0 -60
- data/test/session_test/session_test.rb +0 -78
- data/test/session_test/timeout_test.rb +0 -82
- data/test/session_test/unauthorized_record_test.rb +0 -13
- data/test/session_test/validation_test.rb +0 -23
- data/test/test_helper.rb +0 -233
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Authlogic
|
4
|
+
module Session
|
5
|
+
module MagicColumn
|
6
|
+
# Assigns the current time to the `last_request_at` attribute.
|
7
|
+
#
|
8
|
+
# 1. The `last_request_at` column must exist
|
9
|
+
# 2. Assignment can be disabled on a per-controller basis
|
10
|
+
# 3. Assignment will not happen more often than `last_request_at_threshold`
|
11
|
+
# seconds.
|
12
|
+
#
|
13
|
+
# - current_time - a `Time`
|
14
|
+
# - record - eg. a `User`
|
15
|
+
# - controller - an `Authlogic::ControllerAdapters::AbstractAdapter`
|
16
|
+
# - last_request_at_threshold - integer - seconds
|
17
|
+
#
|
18
|
+
# @api private
|
19
|
+
class AssignsLastRequestAt
|
20
|
+
def initialize(current_time, record, controller, last_request_at_threshold)
|
21
|
+
@current_time = current_time
|
22
|
+
@record = record
|
23
|
+
@controller = controller
|
24
|
+
@last_request_at_threshold = last_request_at_threshold
|
25
|
+
end
|
26
|
+
|
27
|
+
def assign
|
28
|
+
return unless assign?
|
29
|
+
@record.last_request_at = @current_time
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
# @api private
|
35
|
+
def assign?
|
36
|
+
@record &&
|
37
|
+
@record.class.column_names.include?("last_request_at") &&
|
38
|
+
@controller.last_request_update_allowed? && (
|
39
|
+
@record.last_request_at.blank? ||
|
40
|
+
@last_request_at_threshold.to_i.seconds.ago >= @record.last_request_at
|
41
|
+
)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -1,7 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Authlogic
|
2
4
|
module TestCase
|
3
|
-
# Basically acts like a controller but doesn't do anything. Authlogic can interact
|
4
|
-
# can look at the controller object to see if
|
5
|
+
# Basically acts like a controller but doesn't do anything. Authlogic can interact
|
6
|
+
# with this, do it's thing and then you can look at the controller object to see if
|
7
|
+
# anything changed.
|
5
8
|
class MockController < ControllerAdapters::AbstractAdapter
|
6
9
|
attr_accessor :http_user, :http_password, :realm
|
7
10
|
attr_writer :request_content_type
|
@@ -9,11 +12,11 @@ module Authlogic
|
|
9
12
|
def initialize
|
10
13
|
end
|
11
14
|
|
12
|
-
def authenticate_with_http_basic
|
15
|
+
def authenticate_with_http_basic
|
13
16
|
yield http_user, http_password
|
14
17
|
end
|
15
18
|
|
16
|
-
def authenticate_or_request_with_http_basic(realm =
|
19
|
+
def authenticate_or_request_with_http_basic(realm = "DefaultRealm")
|
17
20
|
self.realm = realm
|
18
21
|
@http_auth_requested = true
|
19
22
|
yield http_user, http_password
|
@@ -1,12 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Authlogic
|
2
4
|
module TestCase
|
5
|
+
# A mock of `ActionDispatch::Cookies::CookieJar`.
|
3
6
|
class MockCookieJar < Hash # :nodoc:
|
7
|
+
attr_accessor :set_cookies
|
8
|
+
|
4
9
|
def [](key)
|
5
10
|
hash = super
|
6
11
|
hash && hash[:value]
|
7
12
|
end
|
8
13
|
|
9
|
-
def
|
14
|
+
def []=(key, options)
|
15
|
+
(@set_cookies ||= {})[key.to_s] = options
|
16
|
+
super
|
17
|
+
end
|
18
|
+
|
19
|
+
def delete(key, _options = {})
|
10
20
|
super(key)
|
11
21
|
end
|
12
22
|
|
@@ -15,6 +25,11 @@ module Authlogic
|
|
15
25
|
end
|
16
26
|
end
|
17
27
|
|
28
|
+
# A mock of `ActionDispatch::Cookies::SignedKeyRotatingCookieJar`
|
29
|
+
#
|
30
|
+
# > .. a jar that'll automatically generate a signed representation of
|
31
|
+
# > cookie value and verify it when reading from the cookie again.
|
32
|
+
# > actionpack/lib/action_dispatch/middleware/cookies.rb
|
18
33
|
class MockSignedCookieJar < MockCookieJar
|
19
34
|
attr_reader :parent_jar # helper for testing
|
20
35
|
|
@@ -23,8 +38,9 @@ module Authlogic
|
|
23
38
|
end
|
24
39
|
|
25
40
|
def [](val)
|
26
|
-
|
27
|
-
|
41
|
+
signed_message = @parent_jar[val]
|
42
|
+
if signed_message
|
43
|
+
payload, signature = signed_message.split("--")
|
28
44
|
raise "Invalid signature" unless Digest::SHA1.hexdigest(payload) == signature
|
29
45
|
payload
|
30
46
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Authlogic
|
2
4
|
module TestCase
|
3
5
|
class MockRequest # :nodoc:
|
@@ -8,13 +10,16 @@ module Authlogic
|
|
8
10
|
end
|
9
11
|
|
10
12
|
def ip
|
11
|
-
|
13
|
+
controller&.respond_to?(:env) &&
|
14
|
+
controller.env.is_a?(Hash) &&
|
15
|
+
controller.env["REMOTE_ADDR"] ||
|
16
|
+
"1.1.1.1"
|
12
17
|
end
|
13
18
|
|
14
19
|
private
|
15
20
|
|
16
|
-
|
17
|
-
|
21
|
+
def method_missing(*args, &block)
|
22
|
+
end
|
18
23
|
end
|
19
24
|
end
|
20
25
|
end
|
@@ -1,7 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Authlogic
|
2
4
|
module TestCase
|
3
|
-
# Adapts authlogic to work with the @request object when testing. This way Authlogic
|
4
|
-
# a request is made, ultimately letting you log in
|
5
|
+
# Adapts authlogic to work with the @request object when testing. This way Authlogic
|
6
|
+
# can set cookies and what not before a request is made, ultimately letting you log in
|
7
|
+
# users in functional tests.
|
5
8
|
class RailsRequestAdapter < ControllerAdapters::AbstractAdapter
|
6
9
|
def authenticate_with_http_basic(&block)
|
7
10
|
end
|
data/lib/authlogic/test_case.rb
CHANGED
@@ -1,9 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require File.dirname(__FILE__) + "/test_case/rails_request_adapter"
|
2
4
|
require File.dirname(__FILE__) + "/test_case/mock_cookie_jar"
|
3
5
|
require File.dirname(__FILE__) + "/test_case/mock_controller"
|
4
6
|
require File.dirname(__FILE__) + "/test_case/mock_logger"
|
5
7
|
require File.dirname(__FILE__) + "/test_case/mock_request"
|
6
8
|
|
9
|
+
# :nodoc:
|
7
10
|
module Authlogic
|
8
11
|
# This module is a collection of methods and classes that help you easily test
|
9
12
|
# Authlogic. In fact, I use these same tools to test the internals of
|
@@ -50,7 +53,7 @@ module Authlogic
|
|
50
53
|
# ben:
|
51
54
|
# email: whatever@whatever.com
|
52
55
|
# password_salt: <%= salt = Authlogic::Random.hex_token %>
|
53
|
-
# crypted_password: <%= Authlogic::CryptoProviders::
|
56
|
+
# crypted_password: <%= Authlogic::CryptoProviders::SCrypt.encrypt("benrocks" + salt) %>
|
54
57
|
# persistence_token: <%= Authlogic::Random.hex_token %>
|
55
58
|
# single_access_token: <%= Authlogic::Random.friendly_token %>
|
56
59
|
# perishable_token: <%= Authlogic::Random.friendly_token %>
|
@@ -113,7 +116,73 @@ module Authlogic
|
|
113
116
|
#
|
114
117
|
# See how I am checking that Authlogic is interacting with the controller
|
115
118
|
# properly? That's the idea here.
|
119
|
+
#
|
120
|
+
# === Testing with Rails 5
|
121
|
+
#
|
122
|
+
# Rails 5 has [deprecated classic controller tests](https://goo.gl/4zmt6y).
|
123
|
+
# Controller tests now inherit from `ActionDispatch::IntegrationTest` making
|
124
|
+
# them plain old integration tests now. You have two options for testing
|
125
|
+
# AuthLogic in Rails 5:
|
126
|
+
#
|
127
|
+
# * Add the `rails-controller-testing` gem to bring back the original
|
128
|
+
# controller testing usage
|
129
|
+
# * Go full steam ahead with integration testing and actually log a user in
|
130
|
+
# by submitting a form in the integration test.
|
131
|
+
#
|
132
|
+
# Naturally DHH recommends the second method and this is
|
133
|
+
# [what he does in his own tests](https://goo.gl/Ar6p0u). This is useful
|
134
|
+
# for testing not only AuthLogic itself (submitting login credentials to a
|
135
|
+
# UserSessionsController, for example) but any controller action that is
|
136
|
+
# behind a login wall. Add a helper method and use that before testing your
|
137
|
+
# actual controller action:
|
138
|
+
#
|
139
|
+
# # test/test_helper.rb
|
140
|
+
# def login(user)
|
141
|
+
# post user_sessions_url, :params => { :email => user.email, :password => 'password' }
|
142
|
+
# end
|
143
|
+
#
|
144
|
+
# # test/controllers/posts_controller_test.rb
|
145
|
+
# test "#create requires a user to be logged in
|
146
|
+
# post posts_url, :params => { :body => 'Lorem ipsum' }
|
147
|
+
#
|
148
|
+
# assert_redirected_to new_user_session_url
|
149
|
+
# end
|
150
|
+
#
|
151
|
+
# test "#create lets a logged in user create a new post" do
|
152
|
+
# login(users(:admin))
|
153
|
+
#
|
154
|
+
# assert_difference 'Posts.count' do
|
155
|
+
# post posts_url, :params => { :body => 'Lorem ipsum' }
|
156
|
+
# end
|
157
|
+
#
|
158
|
+
# assert_redirected_to posts_url
|
159
|
+
# end
|
160
|
+
#
|
161
|
+
# You still have access to the `session` helper in an integration test and so
|
162
|
+
# you can still test to see if a user is logged in. A couple of helper methods
|
163
|
+
# might look like:
|
164
|
+
#
|
165
|
+
# # test/test_helper.rb
|
166
|
+
# def assert_logged_in
|
167
|
+
# assert session[:user_credentials].present?
|
168
|
+
# end
|
169
|
+
#
|
170
|
+
# def assert_not_logged_in
|
171
|
+
# assert session[:user_credentials].blank?
|
172
|
+
# end
|
173
|
+
#
|
174
|
+
# # test/user_sessions_controller_test.rb
|
175
|
+
# test "#create logs in a user" do
|
176
|
+
# login(users(:admin))
|
177
|
+
#
|
178
|
+
# assert_logged_in
|
179
|
+
# end
|
116
180
|
module TestCase
|
181
|
+
def initialize(*args)
|
182
|
+
@request = nil
|
183
|
+
super
|
184
|
+
end
|
185
|
+
|
117
186
|
# Activates authlogic so that you can use it in your tests. You should call
|
118
187
|
# this method in your test's setup. Ex:
|
119
188
|
#
|
@@ -125,7 +194,9 @@ module Authlogic
|
|
125
194
|
end
|
126
195
|
end
|
127
196
|
|
128
|
-
Authlogic::Session::Base.controller =
|
197
|
+
Authlogic::Session::Base.controller = @request &&
|
198
|
+
Authlogic::TestCase::RailsRequestAdapter.new(@request) ||
|
199
|
+
controller
|
129
200
|
end
|
130
201
|
|
131
202
|
# The Authlogic::TestCase::MockController object passed to Authlogic to
|
@@ -136,6 +207,7 @@ module Authlogic
|
|
136
207
|
end
|
137
208
|
end
|
138
209
|
|
210
|
+
# TODO: Why are these lines inside the `Authlogic` module? Should be outside?
|
139
211
|
::Test::Unit::TestCase.send(:include, TestCase) if defined?(::Test::Unit::TestCase)
|
140
212
|
::MiniTest::Unit::TestCase.send(:include, TestCase) if defined?(::MiniTest::Unit::TestCase)
|
141
213
|
::MiniTest::Test.send(:include, TestCase) if defined?(::MiniTest::Test)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rubygems"
|
4
|
+
|
5
|
+
# :nodoc:
|
6
|
+
module Authlogic
|
7
|
+
# Returns a `::Gem::Version`, the version number of the authlogic gem.
|
8
|
+
#
|
9
|
+
# It is preferable for a library to provide a `gem_version` method, rather
|
10
|
+
# than a `VERSION` string, because `::Gem::Version` is easier to use in a
|
11
|
+
# comparison.
|
12
|
+
#
|
13
|
+
# We cannot return a frozen `Version`, because rubygems will try to modify it.
|
14
|
+
# https://github.com/binarylogic/authlogic/pull/590
|
15
|
+
#
|
16
|
+
# Added in 4.0.0
|
17
|
+
#
|
18
|
+
# @api public
|
19
|
+
def self.gem_version
|
20
|
+
::Gem::Version.new("6.0.0")
|
21
|
+
end
|
22
|
+
end
|
data/lib/authlogic.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
#
|
4
|
-
# `
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Authlogic uses ActiveSupport's core extensions like `strip_heredoc` and
|
4
|
+
# `squish`. ActiveRecord does not `require` these exensions, so we must.
|
5
|
+
#
|
6
|
+
# It's possible that we could save a few milliseconds by loading only the
|
7
|
+
# specific core extensions we need, but `all.rb` is simpler. We can revisit this
|
8
|
+
# decision if it becomes a problem.
|
5
9
|
require "active_support/all"
|
6
10
|
|
7
11
|
require "active_record"
|
@@ -9,57 +13,32 @@ require "active_record"
|
|
9
13
|
path = File.dirname(__FILE__) + "/authlogic/"
|
10
14
|
|
11
15
|
[
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
"acts_as_authentic/base",
|
36
|
-
|
37
|
-
"session/activation",
|
38
|
-
"session/active_record_trickery",
|
39
|
-
"session/brute_force_protection",
|
40
|
-
"session/callbacks",
|
41
|
-
"session/cookies",
|
42
|
-
"session/existence",
|
43
|
-
"session/foundation",
|
44
|
-
"session/http_auth",
|
45
|
-
"session/id",
|
46
|
-
"session/klass",
|
47
|
-
"session/magic_columns",
|
48
|
-
"session/magic_states",
|
49
|
-
"session/params",
|
50
|
-
"session/password",
|
51
|
-
"session/perishable_token",
|
52
|
-
"session/persistence",
|
53
|
-
"session/priority_record",
|
54
|
-
"session/scopes",
|
55
|
-
"session/session",
|
56
|
-
"session/timeout",
|
57
|
-
"session/unauthorized_record",
|
58
|
-
"session/validation",
|
59
|
-
"session/base"
|
16
|
+
"errors",
|
17
|
+
"i18n",
|
18
|
+
"random",
|
19
|
+
"config",
|
20
|
+
|
21
|
+
"controller_adapters/abstract_adapter",
|
22
|
+
"cookie_credentials",
|
23
|
+
|
24
|
+
"crypto_providers",
|
25
|
+
|
26
|
+
"acts_as_authentic/email",
|
27
|
+
"acts_as_authentic/logged_in_status",
|
28
|
+
"acts_as_authentic/login",
|
29
|
+
"acts_as_authentic/magic_columns",
|
30
|
+
"acts_as_authentic/password",
|
31
|
+
"acts_as_authentic/perishable_token",
|
32
|
+
"acts_as_authentic/persistence_token",
|
33
|
+
"acts_as_authentic/session_maintenance",
|
34
|
+
"acts_as_authentic/single_access_token",
|
35
|
+
"acts_as_authentic/base",
|
36
|
+
|
37
|
+
"session/magic_column/assigns_last_request_at",
|
38
|
+
"session/base"
|
60
39
|
].each do |library|
|
61
|
-
|
62
|
-
|
40
|
+
require path + library
|
41
|
+
end
|
63
42
|
|
64
43
|
require path + "controller_adapters/rails_adapter" if defined?(Rails)
|
65
44
|
require path + "controller_adapters/sinatra_adapter" if defined?(Sinatra)
|