authlogic 3.4.2 → 3.4.3
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 +4 -4
- data/.gitignore +1 -1
- data/.travis.yml +1 -11
- data/CHANGELOG.md +102 -0
- data/Gemfile +4 -1
- data/README.rdoc +11 -3
- data/authlogic.gemspec +3 -4
- data/lib/authlogic/acts_as_authentic/magic_columns.rb +3 -3
- data/lib/authlogic/acts_as_authentic/password.rb +1 -5
- data/lib/authlogic/acts_as_authentic/perishable_token.rb +1 -1
- data/lib/authlogic/crypto_providers/bcrypt.rb +1 -1
- data/lib/authlogic/session/cookies.rb +12 -9
- data/lib/authlogic/session/magic_columns.rb +7 -2
- data/lib/authlogic/session/password.rb +26 -27
- data/test/gemfiles/Gemfile.rails-3.2.x +2 -0
- data/test/gemfiles/Gemfile.rails-4.0.x +4 -2
- data/test/gemfiles/Gemfile.rails-4.1.x +4 -2
- data/test/session_test/brute_force_protection_test.rb +1 -1
- data/test/test_helper.rb +3 -1
- metadata +7 -22
- data/Gemfile.lock +0 -56
- data/History +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d73042e9d99c9d01535d405c9e735a22967c1ed
|
4
|
+
data.tar.gz: 5ba70f01a348b3990451ab67e91dd6f49966290d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 653df6e58f3a50a81cd85bd7304f2eb0895606d08b2969d41a817d8ad9ea40d6d2bcd669e069fbc28739c95371f2f1b4b992652efd75458b527eba88d74be023
|
7
|
+
data.tar.gz: f1f535422bd84ee1f11899490fec35c0822d07a28c8188d8037c10fef8971aaeaa35cdd767f24b11bf987bc4fa207ea921febf855cf56803e28c438ad7d34802
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,10 +1,8 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
- 1.8.7
|
4
3
|
- 1.9.3
|
5
4
|
- 2.0.0
|
6
5
|
- 2.1.0
|
7
|
-
- ree
|
8
6
|
- jruby
|
9
7
|
|
10
8
|
gemfile:
|
@@ -14,14 +12,6 @@ gemfile:
|
|
14
12
|
|
15
13
|
matrix:
|
16
14
|
exclude:
|
17
|
-
- rvm: 1.
|
18
|
-
gemfile: test/gemfiles/Gemfile.rails-4.0.x
|
19
|
-
- rvm: ree
|
20
|
-
gemfile: test/gemfiles/Gemfile.rails-4.0.x
|
21
|
-
- rvm: 1.8.7
|
15
|
+
- rvm: 1.9.3
|
22
16
|
gemfile: test/gemfiles/Gemfile.rails-4.1.x
|
23
|
-
- rvm: ree
|
24
|
-
gemfile: test/gemfiles/Gemfile.rails-4.1.x
|
25
|
-
allow_failures:
|
26
|
-
- gemfile: test/gemfiles/Gemfile.rails-4.1.x
|
27
17
|
fast_finish: true
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## 3.4.3 2014-10-08
|
4
|
+
|
5
|
+
* changes
|
6
|
+
* backfill CHANGELOG
|
7
|
+
* better compatibility with jruby (thx @petergoldstein)
|
8
|
+
* added scrypt as a dependency
|
9
|
+
* cleanup some code (thx @roryokane)
|
10
|
+
* reference 'bcrypt' gem instead of 'bcrypt-ruby' (thx @roryokane)
|
11
|
+
* fixed typo (thx @chamini2)
|
12
|
+
* fixed magic column validations for Rails 4.2 (thx @tom-kuca)
|
13
|
+
|
14
|
+
## 3.4.2 2014-04-28
|
15
|
+
|
16
|
+
* changes
|
17
|
+
* fixed the missing scrypt/bcrypt gem errors introduced in 3.4.1
|
18
|
+
* implemented autoloading for providers
|
19
|
+
* added longer subdomain support in email regex
|
20
|
+
|
21
|
+
## 3.4.1 2014-04-04
|
22
|
+
|
23
|
+
* changes
|
24
|
+
* undid an accidental revert of some code
|
25
|
+
|
26
|
+
## 3.4.0 2014-03-03
|
27
|
+
|
28
|
+
* new
|
29
|
+
* added cookie signing
|
30
|
+
* added request store for better concurency for threaded environments
|
31
|
+
|
32
|
+
* changes
|
33
|
+
* made scrypt the default crypto provider from SHA512
|
34
|
+
* ditched appraisal
|
35
|
+
* officially support rails 4 (still supporting rails 3)
|
36
|
+
* improved find_with_case default performance
|
37
|
+
* added a rack adapter for Rack middleware support
|
38
|
+
* added travis ci support
|
39
|
+
|
40
|
+
## 3.3.0 2014-04-04
|
41
|
+
|
42
|
+
* changes
|
43
|
+
* added safeguard against a sqli that was also fixed in rails 3.2.10/3.1.9/3.0.18
|
44
|
+
* imposed the bcrypt gem's mincost
|
45
|
+
* removed shoulda macros
|
46
|
+
|
47
|
+
## 3.2.0 2012-12-07
|
48
|
+
|
49
|
+
* new
|
50
|
+
* scrypt support
|
51
|
+
|
52
|
+
* changes
|
53
|
+
* moved back to LOWER for find_with_case ci lookups
|
54
|
+
|
55
|
+
## 3.1.3 2012-06-13
|
56
|
+
|
57
|
+
* changes
|
58
|
+
* removed jeweler
|
59
|
+
|
60
|
+
## 3.1.2 2012-06-01
|
61
|
+
|
62
|
+
* changes
|
63
|
+
* mostly test fixes
|
64
|
+
|
65
|
+
## 3.1.1 2012-06-01
|
66
|
+
|
67
|
+
* changes
|
68
|
+
* mostly doc fixes
|
69
|
+
|
70
|
+
## 3.1.0 2011-10-19
|
71
|
+
|
72
|
+
* changes
|
73
|
+
* mostly small bug fixes
|
74
|
+
|
75
|
+
## 3.0.3 2011-05-17
|
76
|
+
|
77
|
+
* changes
|
78
|
+
* rails 3.1 support
|
79
|
+
|
80
|
+
* new
|
81
|
+
* http auth support
|
82
|
+
|
83
|
+
## 3.0.2 2011-04-30
|
84
|
+
|
85
|
+
* changes
|
86
|
+
* doc fixes
|
87
|
+
|
88
|
+
## 3.0.1 2011-04-30
|
89
|
+
|
90
|
+
* changes
|
91
|
+
* switch from LOWER to LIKE for find_with_case ci lookups
|
92
|
+
|
93
|
+
## 3.0.0 2011-04-30
|
94
|
+
|
95
|
+
* new
|
96
|
+
* ssl cookie support
|
97
|
+
* httponly cookie support
|
98
|
+
* added a session generator
|
99
|
+
|
100
|
+
* changes
|
101
|
+
* rails 3 support
|
102
|
+
* ruby 1.9.2 support
|
data/Gemfile
CHANGED
data/README.rdoc
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
= Authlogic
|
2
2
|
|
3
|
-
** Authlogic
|
3
|
+
** Authlogic supports both rails 3 and 4. For rails 2, see the rail2 branch
|
4
|
+
|
5
|
+
{<img src="https://travis-ci.org/binarylogic/authlogic.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/binarylogic/authlogic]
|
6
|
+
|
7
|
+
{<img src="https://codeclimate.com/github/binarylogic/authlogic.png" />}[https://codeclimate.com/github/binarylogic/authlogic]
|
4
8
|
|
5
9
|
Authlogic is a clean, simple, and unobtrusive ruby authentication solution.
|
6
10
|
|
@@ -41,6 +45,12 @@ To get all of the nice authentication functionality in your model just do this:
|
|
41
45
|
|
42
46
|
This handles validations, etc. It is also "smart" in the sense that it if a login field is present it will use that to authenticate, if not it will look for an email field, etc. This is all configurable, but for 99% of cases that above is all you will need to do.
|
43
47
|
|
48
|
+
You may specify how passwords are cryptographically hashed (or encrypted) by setting the Authlogic::CryptoProvider option:
|
49
|
+
|
50
|
+
c.crypto_provider = Authlogic::CryptoProviders::BCrypt
|
51
|
+
|
52
|
+
NOTE: the default provider was changed from **Sha512** to **SCrypt** in version 3.4.0.
|
53
|
+
|
44
54
|
Also, sessions are automatically maintained. You can switch this on and off with configuration, but the following will automatically log a user in after a successful registration:
|
45
55
|
|
46
56
|
User.create(params[:user])
|
@@ -162,5 +172,3 @@ Interested in how all of this all works? Think about an ActiveRecord model. A da
|
|
162
172
|
|
163
173
|
|
164
174
|
Copyright (c) 2012 {Ben Johnson of Binary Logic}[http://www.binarylogic.com], released under the MIT license
|
165
|
-
|
166
|
-
{<img src="https://codeclimate.com/github/binarylogic/authlogic.png" />}[https://codeclimate.com/github/binarylogic/authlogic]
|
data/authlogic.gemspec
CHANGED
@@ -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.
|
6
|
+
s.version = "3.4.3"
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
8
|
s.authors = ["Ben Johnson"]
|
9
9
|
s.email = ["bjohnson@binarylogic.com"]
|
@@ -16,9 +16,8 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.add_dependency 'activerecord', '>= 3.2'
|
17
17
|
s.add_dependency 'activesupport', '>= 3.2'
|
18
18
|
s.add_dependency 'request_store', '~> 1.0'
|
19
|
-
s.
|
20
|
-
s.add_development_dependency '
|
21
|
-
s.add_development_dependency 'sqlite3', '~> 1.3'
|
19
|
+
s.add_dependency 'scrypt', '~> 1.2'
|
20
|
+
s.add_development_dependency 'bcrypt', '~> 3.1'
|
22
21
|
s.add_development_dependency 'timecop', '~> 0.7'
|
23
22
|
|
24
23
|
s.files = `git ls-files`.split("\n")
|
@@ -14,11 +14,11 @@ module Authlogic
|
|
14
14
|
module Methods
|
15
15
|
def self.included(klass)
|
16
16
|
klass.class_eval do
|
17
|
-
validates_numericality_of :login_count, :only_integer =>
|
18
|
-
validates_numericality_of :failed_login_count, :only_integer =>
|
17
|
+
validates_numericality_of :login_count, :only_integer => true, :greater_than_or_equal_to => 0, :allow_nil => true if column_names.include?("login_count")
|
18
|
+
validates_numericality_of :failed_login_count, :only_integer => true, :greater_than_or_equal_to => 0, :allow_nil => true if column_names.include?("failed_login_count")
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
24
|
-
end
|
24
|
+
end
|
@@ -149,11 +149,7 @@ module Authlogic
|
|
149
149
|
# * <tt>Default:</tt> CryptoProviders::SCrypt
|
150
150
|
# * <tt>Accepts:</tt> Class
|
151
151
|
def crypto_provider(value = nil)
|
152
|
-
|
153
|
-
rw_config(:crypto_provider, CryptoProviders::SCrypt)
|
154
|
-
else
|
155
|
-
rw_config(:crypto_provider, value)
|
156
|
-
end
|
152
|
+
rw_config(:crypto_provider, value, CryptoProviders::SCrypt)
|
157
153
|
end
|
158
154
|
alias_method :crypto_provider=, :crypto_provider
|
159
155
|
|
@@ -24,7 +24,7 @@ module Authlogic
|
|
24
24
|
end
|
25
25
|
alias_method :perishable_token_valid_for=, :perishable_token_valid_for
|
26
26
|
|
27
|
-
# Authlogic tries to expire and change the perishable token as much as possible, without
|
27
|
+
# Authlogic tries to expire and change the perishable token as much as possible, without compromising
|
28
28
|
# it's purpose. This is for security reasons. If you want to manage it yourself, you can stop
|
29
29
|
# Authlogic from getting your in way by setting this to true.
|
30
30
|
#
|
@@ -180,10 +180,11 @@ module Authlogic
|
|
180
180
|
|
181
181
|
def cookie_credentials
|
182
182
|
if self.class.sign_cookie
|
183
|
-
|
183
|
+
cookie = controller.cookies.signed[cookie_key]
|
184
184
|
else
|
185
|
-
|
185
|
+
cookie = controller.cookies[cookie_key]
|
186
186
|
end
|
187
|
+
cookie && cookie.split("::")
|
187
188
|
end
|
188
189
|
|
189
190
|
# Tries to validate the session from information in the cookie
|
@@ -199,20 +200,22 @@ module Authlogic
|
|
199
200
|
end
|
200
201
|
|
201
202
|
def save_cookie
|
203
|
+
if sign_cookie?
|
204
|
+
controller.cookies.signed[cookie_key] = generate_cookie_for_saving
|
205
|
+
else
|
206
|
+
controller.cookies[cookie_key] = generate_cookie_for_saving
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
def generate_cookie_for_saving
|
202
211
|
remember_me_until_value = "::#{remember_me_until.iso8601}" if remember_me?
|
203
|
-
|
212
|
+
{
|
204
213
|
:value => "#{record.persistence_token}::#{record.send(record.class.primary_key)}#{remember_me_until_value}",
|
205
214
|
:expires => remember_me_until,
|
206
215
|
:secure => secure,
|
207
216
|
:httponly => httponly,
|
208
217
|
:domain => controller.cookie_domain
|
209
218
|
}
|
210
|
-
|
211
|
-
if sign_cookie?
|
212
|
-
controller.cookies.signed[cookie_key] = cookie
|
213
|
-
else
|
214
|
-
controller.cookies[cookie_key] = cookie
|
215
|
-
end
|
216
219
|
end
|
217
220
|
|
218
221
|
def destroy_cookie
|
@@ -48,8 +48,13 @@ module Authlogic
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def update_info
|
51
|
-
|
52
|
-
|
51
|
+
if record.respond_to?(:login_count)
|
52
|
+
record.login_count = (record.login_count.blank? ? 1 : record.login_count + 1)
|
53
|
+
end
|
54
|
+
|
55
|
+
if record.respond_to?(:failed_login_count)
|
56
|
+
record.failed_login_count = 0
|
57
|
+
end
|
53
58
|
|
54
59
|
if record.respond_to?(:current_login_at)
|
55
60
|
record.last_login_at = record.current_login_at if record.respond_to?(:last_login_at)
|
@@ -115,28 +115,9 @@ module Authlogic
|
|
115
115
|
module InstanceMethods
|
116
116
|
def initialize(*args)
|
117
117
|
if !self.class.configured_password_methods
|
118
|
-
|
119
|
-
self.class.send(:attr_writer, login_field) if !respond_to?("#{login_field}=")
|
120
|
-
self.class.send(:attr_reader, login_field) if !respond_to?(login_field)
|
121
|
-
end
|
122
|
-
|
123
|
-
if password_field
|
124
|
-
self.class.send(:attr_writer, password_field) if !respond_to?("#{password_field}=")
|
125
|
-
self.class.send(:define_method, password_field) {} if !respond_to?(password_field)
|
126
|
-
|
127
|
-
self.class.class_eval <<-"end_eval", __FILE__, __LINE__
|
128
|
-
private
|
129
|
-
# The password should not be accessible publicly. This way forms using form_for don't fill the password with the
|
130
|
-
# attempted password. To prevent this we just create this method that is private.
|
131
|
-
def protected_#{password_field}
|
132
|
-
@#{password_field}
|
133
|
-
end
|
134
|
-
end_eval
|
135
|
-
end
|
136
|
-
|
118
|
+
configure_password_methods
|
137
119
|
self.class.configured_password_methods = true
|
138
120
|
end
|
139
|
-
|
140
121
|
super
|
141
122
|
end
|
142
123
|
|
@@ -169,6 +150,27 @@ module Authlogic
|
|
169
150
|
end
|
170
151
|
|
171
152
|
private
|
153
|
+
def configure_password_methods
|
154
|
+
if login_field
|
155
|
+
self.class.send(:attr_writer, login_field) if !respond_to?("#{login_field}=")
|
156
|
+
self.class.send(:attr_reader, login_field) if !respond_to?(login_field)
|
157
|
+
end
|
158
|
+
|
159
|
+
if password_field
|
160
|
+
self.class.send(:attr_writer, password_field) if !respond_to?("#{password_field}=")
|
161
|
+
self.class.send(:define_method, password_field) {} if !respond_to?(password_field)
|
162
|
+
|
163
|
+
self.class.class_eval <<-"end_eval", __FILE__, __LINE__
|
164
|
+
private
|
165
|
+
# The password should not be accessible publicly. This way forms using form_for don't fill the password with the
|
166
|
+
# attempted password. To prevent this we just create this method that is private.
|
167
|
+
def protected_#{password_field}
|
168
|
+
@#{password_field}
|
169
|
+
end
|
170
|
+
end_eval
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
172
174
|
def authenticating_with_password?
|
173
175
|
login_field && (!send(login_field).nil? || !send("protected_#{password_field}").nil?)
|
174
176
|
end
|
@@ -176,10 +178,12 @@ module Authlogic
|
|
176
178
|
def validate_by_password
|
177
179
|
self.invalid_password = false
|
178
180
|
|
181
|
+
# check for blank fields
|
179
182
|
errors.add(login_field, I18n.t('error_messages.login_blank', :default => "cannot be blank")) if send(login_field).blank?
|
180
183
|
errors.add(password_field, I18n.t('error_messages.password_blank', :default => "cannot be blank")) if send("protected_#{password_field}").blank?
|
181
184
|
return if errors.count > 0
|
182
185
|
|
186
|
+
# check for unknown login
|
183
187
|
self.attempted_record = search_for_record(find_by_login_method, send(login_field))
|
184
188
|
if attempted_record.blank?
|
185
189
|
generalize_credentials_error_messages? ?
|
@@ -188,6 +192,7 @@ module Authlogic
|
|
188
192
|
return
|
189
193
|
end
|
190
194
|
|
195
|
+
# check for invalid password
|
191
196
|
if !attempted_record.send(verify_password_method, send("protected_#{password_field}"))
|
192
197
|
self.invalid_password = true
|
193
198
|
generalize_credentials_error_messages? ?
|
@@ -197,13 +202,7 @@ module Authlogic
|
|
197
202
|
end
|
198
203
|
end
|
199
204
|
|
200
|
-
|
201
|
-
@invalid_password
|
202
|
-
end
|
203
|
-
|
204
|
-
def invalid_password=(value)
|
205
|
-
@invalid_password = value
|
206
|
-
end
|
205
|
+
attr_accessor :invalid_password
|
207
206
|
|
208
207
|
def find_by_login_method
|
209
208
|
self.class.find_by_login_method
|
@@ -1,5 +1,7 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
gemspec :path => "./../.."
|
3
3
|
|
4
|
-
gem "activerecord", "4.0.3"
|
5
|
-
gem "activesupport", "4.0.3"
|
4
|
+
gem "activerecord", "~> 4.0.3"
|
5
|
+
gem "activesupport", "~> 4.0.3"
|
6
|
+
gem 'activerecord-jdbcsqlite3-adapter', :platforms => :jruby
|
7
|
+
gem 'sqlite3', :platforms => :ruby
|
@@ -1,5 +1,7 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
gemspec :path => "./../.."
|
3
3
|
|
4
|
-
gem "activerecord", "4.1.0
|
5
|
-
gem "activesupport", "4.1.0
|
4
|
+
gem "activerecord", "~> 4.1.0"
|
5
|
+
gem "activesupport", "~> 4.1.0"
|
6
|
+
gem 'activerecord-jdbcsqlite3-adapter', :platforms => :jruby
|
7
|
+
gem 'sqlite3', :platforms => :ruby
|
@@ -20,7 +20,7 @@ module SessionTest
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
class
|
23
|
+
class InstanceMethodsTest < ActiveSupport::TestCase
|
24
24
|
def test_under_limit
|
25
25
|
ben = users(:ben)
|
26
26
|
ben.failed_login_count = UserSession.consecutive_failed_logins_limit - 1
|
data/test/test_helper.rb
CHANGED
@@ -14,7 +14,9 @@ logger = Logger.new(STDOUT)
|
|
14
14
|
logger.level= Logger::FATAL
|
15
15
|
ActiveRecord::Base.logger = logger
|
16
16
|
|
17
|
-
|
17
|
+
if (ActiveRecord::VERSION::STRING < '4.1')
|
18
|
+
ActiveRecord::Base.configurations = true
|
19
|
+
end
|
18
20
|
ActiveRecord::Base.default_timezone = :local
|
19
21
|
ActiveRecord::Schema.define(:version => 1) do
|
20
22
|
create_table :companies do |t|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: authlogic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.4.
|
4
|
+
version: 3.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Johnson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: bcrypt-ruby
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '3.1'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '3.1'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: scrypt
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,7 +59,7 @@ dependencies:
|
|
73
59
|
- - "~>"
|
74
60
|
- !ruby/object:Gem::Version
|
75
61
|
version: '1.2'
|
76
|
-
type: :
|
62
|
+
type: :runtime
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
@@ -81,19 +67,19 @@ dependencies:
|
|
81
67
|
- !ruby/object:Gem::Version
|
82
68
|
version: '1.2'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
70
|
+
name: bcrypt
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
73
|
- - "~>"
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version: '1
|
75
|
+
version: '3.1'
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
80
|
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version: '1
|
82
|
+
version: '3.1'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: timecop
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -117,10 +103,9 @@ extra_rdoc_files: []
|
|
117
103
|
files:
|
118
104
|
- ".gitignore"
|
119
105
|
- ".travis.yml"
|
106
|
+
- CHANGELOG.md
|
120
107
|
- CONTRIBUTING.md
|
121
108
|
- Gemfile
|
122
|
-
- Gemfile.lock
|
123
|
-
- History
|
124
109
|
- LICENSE
|
125
110
|
- README.rdoc
|
126
111
|
- Rakefile
|
data/Gemfile.lock
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
authlogic (3.4.2)
|
5
|
-
activerecord (>= 3.2)
|
6
|
-
activesupport (>= 3.2)
|
7
|
-
request_store (~> 1.0)
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: https://rubygems.org/
|
11
|
-
specs:
|
12
|
-
activemodel (4.1.0)
|
13
|
-
activesupport (= 4.1.0)
|
14
|
-
builder (~> 3.1)
|
15
|
-
activerecord (4.1.0)
|
16
|
-
activemodel (= 4.1.0)
|
17
|
-
activesupport (= 4.1.0)
|
18
|
-
arel (~> 5.0.0)
|
19
|
-
activesupport (4.1.0)
|
20
|
-
i18n (~> 0.6, >= 0.6.9)
|
21
|
-
json (~> 1.7, >= 1.7.7)
|
22
|
-
minitest (~> 5.1)
|
23
|
-
thread_safe (~> 0.1)
|
24
|
-
tzinfo (~> 1.1)
|
25
|
-
arel (5.0.1.20140414130214)
|
26
|
-
bcrypt (3.1.7)
|
27
|
-
bcrypt-ruby (3.1.5)
|
28
|
-
bcrypt (>= 3.1.3)
|
29
|
-
builder (3.2.2)
|
30
|
-
ffi (1.9.3)
|
31
|
-
ffi-compiler (0.1.3)
|
32
|
-
ffi (>= 1.0.0)
|
33
|
-
rake
|
34
|
-
i18n (0.6.9)
|
35
|
-
json (1.8.1)
|
36
|
-
minitest (5.3.3)
|
37
|
-
rake (10.3.1)
|
38
|
-
request_store (1.0.5)
|
39
|
-
scrypt (1.2.1)
|
40
|
-
ffi-compiler (>= 0.0.2)
|
41
|
-
rake
|
42
|
-
sqlite3 (1.3.9)
|
43
|
-
thread_safe (0.3.3)
|
44
|
-
timecop (0.7.1)
|
45
|
-
tzinfo (1.1.0)
|
46
|
-
thread_safe (~> 0.1)
|
47
|
-
|
48
|
-
PLATFORMS
|
49
|
-
ruby
|
50
|
-
|
51
|
-
DEPENDENCIES
|
52
|
-
authlogic!
|
53
|
-
bcrypt-ruby (~> 3.1)
|
54
|
-
scrypt (~> 1.2)
|
55
|
-
sqlite3 (~> 1.3)
|
56
|
-
timecop (~> 0.7)
|
data/History
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
== 3.4.0 2014-03-03
|
2
|
-
|
3
|
-
* new
|
4
|
-
* added cookie signing
|
5
|
-
* added request store for better concurency for threaded environments
|
6
|
-
|
7
|
-
* changes
|
8
|
-
* made SCrpyt the default crypto provider from SHA512
|
9
|
-
* ditched appraisal
|
10
|
-
* officially support rails 4 (still supporting rails 3)
|