authlogic 3.3.0 → 3.4.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/.gitignore +3 -1
- data/.travis.yml +27 -0
- data/CONTRIBUTING.md +10 -0
- data/Gemfile.lock +46 -28
- data/History +10 -0
- data/README.rdoc +2 -0
- data/Rakefile +0 -13
- data/authlogic.gemspec +8 -7
- data/lib/authlogic/acts_as_authentic/email.rb +1 -1
- data/lib/authlogic/acts_as_authentic/login.rb +12 -13
- data/lib/authlogic/acts_as_authentic/password.rb +47 -47
- data/lib/authlogic/acts_as_authentic/perishable_token.rb +1 -1
- data/lib/authlogic/acts_as_authentic/persistence_token.rb +1 -1
- data/lib/authlogic/authenticates_many/base.rb +1 -1
- data/lib/authlogic/controller_adapters/sinatra_adapter.rb +1 -1
- data/lib/authlogic/crypto_providers/bcrypt.rb +19 -18
- data/lib/authlogic/crypto_providers/scrypt.rb +7 -6
- data/lib/authlogic/regex.rb +3 -2
- data/lib/authlogic/session/activation.rb +5 -3
- data/lib/authlogic/session/active_record_trickery.rb +23 -1
- data/lib/authlogic/session/callbacks.rb +8 -3
- data/lib/authlogic/session/cookies.rb +52 -17
- data/lib/authlogic/session/foundation.rb +1 -9
- data/lib/authlogic/session/magic_columns.rb +3 -3
- data/lib/authlogic/session/scopes.rb +11 -4
- data/lib/authlogic/session/session.rb +8 -8
- data/lib/authlogic/test_case.rb +7 -5
- data/lib/authlogic/test_case/mock_cookie_jar.rb +25 -0
- data/lib/authlogic/test_case/mock_request.rb +2 -2
- data/test/acts_as_authentic_test/logged_in_status_test.rb +3 -3
- data/test/acts_as_authentic_test/password_test.rb +16 -7
- data/test/crypto_provider_test/bcrypt_test.rb +1 -9
- data/test/fixtures/users.yml +13 -1
- data/test/gemfiles/Gemfile.rails-3.2.x +5 -0
- data/test/gemfiles/Gemfile.rails-4.0.x +5 -0
- data/test/gemfiles/Gemfile.rails-4.1.x +5 -0
- data/test/session_test/active_record_trickery_test.rb +29 -0
- data/test/session_test/cookies_test.rb +26 -1
- data/test/session_test/session_test.rb +7 -7
- data/test/test_helper.rb +3 -1
- metadata +59 -55
- data/lib/authlogic/controller_adapters/rack_adapter.rb +0 -63
@@ -1,63 +0,0 @@
|
|
1
|
-
module Authlogic
|
2
|
-
module ControllerAdapters
|
3
|
-
# Adapter for authlogic to make it function as a Rack middleware.
|
4
|
-
# First you'll have write your own Rack adapter where you have to set your cookie domain.
|
5
|
-
#
|
6
|
-
# class YourRackAdapter < Authlogic::ControllerAdapters::RackAdapter
|
7
|
-
# def cookie_domain
|
8
|
-
# 'your_cookie_domain_here.com'
|
9
|
-
# end
|
10
|
-
# end
|
11
|
-
#
|
12
|
-
# Next you need to set up a rack middleware like this:
|
13
|
-
#
|
14
|
-
# class AuthlogicMiddleware
|
15
|
-
# def initialize(app)
|
16
|
-
# @app = app
|
17
|
-
# end
|
18
|
-
#
|
19
|
-
# def call(env)
|
20
|
-
# YourRackAdapter.new(env)
|
21
|
-
# @app.call(env)
|
22
|
-
# end
|
23
|
-
# end
|
24
|
-
#
|
25
|
-
# And that is all! Now just load this middleware into rack:
|
26
|
-
#
|
27
|
-
# use AuthlogicMiddleware
|
28
|
-
#
|
29
|
-
# Authlogic will expect a User and a UserSession object to be present:
|
30
|
-
#
|
31
|
-
# class UserSession < Authlogic::Session::Base
|
32
|
-
# # Authlogic options go here
|
33
|
-
# end
|
34
|
-
#
|
35
|
-
# class User < ActiveRecord::Base
|
36
|
-
# acts_as_authentic
|
37
|
-
# end
|
38
|
-
#
|
39
|
-
class RackAdapter < AbstractAdapter
|
40
|
-
|
41
|
-
def initialize(env)
|
42
|
-
# We use the Rack::Request object as the controller object.
|
43
|
-
# For this to work, we have to add some glue.
|
44
|
-
request = Rack::Request.new(env)
|
45
|
-
|
46
|
-
request.instance_eval do
|
47
|
-
def request; self; end
|
48
|
-
def remote_ip; self.ip; end
|
49
|
-
end
|
50
|
-
|
51
|
-
super(request)
|
52
|
-
Authlogic::Session::Base.controller = self
|
53
|
-
end
|
54
|
-
|
55
|
-
# Rack Requests stores cookies with not just the value, but also with flags and expire information in the hash.
|
56
|
-
# Authlogic does not like this, so we drop everything except the cookie value
|
57
|
-
def cookies
|
58
|
-
controller.cookies.map{|key, value_hash| {key => value_hash[:value]} }.inject(:merge) || {}
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
end
|