authlogic 3.4.2 → 3.4.3
Sign up to get free protection for your applications and to get access to all the features.
- 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)
|