casino-activerecord_authenticator 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.rspec CHANGED
@@ -1 +1 @@
1
- --color --format Fivemat
1
+ --color --format documentation
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # casino-activerecord_authenticator [![Build Status](https://travis-ci.org/rbCAS/casino-activerecord_authenticator.png?branch=master)](https://travis-ci.org/rbCAS/casino-activerecord_authenticator) [![Coverage Status](https://coveralls.io/repos/rbCAS/casino-activerecord_authenticator/badge.png?branch=master)](https://coveralls.io/r/rbCAS/casino-activerecord_authenticator)
1
+ # casino-activerecord_authenticator [![Build Status](https://travis-ci.org/rbCAS/casino-activerecord_authenticator.png?branch=master)](https://travis-ci.org/rbCAS/casino-activerecord_authenticator) [![Coverage Status](https://coveralls.io/repos/rbCAS/casino-activerecord_authenticator/badge.png)](https://coveralls.io/r/rbCAS/casino-activerecord_authenticator)
2
2
 
3
- Provides mechanism to use ActiveRecord as an authenticator for [CASinoCore](https://github.com/rbCAS/CASinoCore).
3
+ Provides mechanism to use ActiveRecord as an authenticator for [CASino](https://github.com/rbCAS/CASino).
4
4
 
5
5
  ActiveRecord supports many SQL databases such as MySQL, PostgreSQL, SQLite, ...
6
6
 
@@ -22,10 +22,10 @@ Gem::Specification.new do |s|
22
22
  s.add_development_dependency 'simplecov', '~> 0.7'
23
23
  s.add_development_dependency 'sqlite3', '~> 1.3.7'
24
24
  s.add_development_dependency 'coveralls'
25
- s.add_development_dependency 'fivemat'
26
25
 
27
26
  s.add_runtime_dependency 'activerecord', '~> 3.2.12'
28
27
  s.add_runtime_dependency 'unix-crypt', '~> 1.1'
29
28
  s.add_runtime_dependency 'bcrypt-ruby', '~> 3.0'
30
29
  s.add_runtime_dependency 'casino', '~> 2.0'
30
+ s.add_runtime_dependency 'phpass-ruby', '~> 0.1'
31
31
  end
@@ -1,6 +1,7 @@
1
1
  require 'active_record'
2
2
  require 'unix_crypt'
3
3
  require 'bcrypt'
4
+ require 'phpass'
4
5
 
5
6
  class CASino::ActiveRecordAuthenticator
6
7
 
@@ -44,6 +45,8 @@ class CASino::ActiveRecordAuthenticator
44
45
  case magic
45
46
  when /\A2a?\z/
46
47
  valid_password_with_bcrypt?(password, password_from_database)
48
+ when /\AH\z/, /\AP\z/
49
+ valid_password_with_phpass?(password, password_from_database)
47
50
  else
48
51
  valid_password_with_unix_crypt?(password, password_from_database)
49
52
  end
@@ -58,6 +61,10 @@ class CASino::ActiveRecordAuthenticator
58
61
  UnixCrypt.valid?(password, password_from_database)
59
62
  end
60
63
 
64
+ def valid_password_with_phpass?(password, password_from_database)
65
+ Phpass.new().check(password, password_from_database)
66
+ end
67
+
61
68
  def extra_attributes(user)
62
69
  attributes = {}
63
70
  extra_attributes_option.each do |attribute_name, database_column|
@@ -1,5 +1,5 @@
1
1
  module CASino
2
2
  class ActiveRecordAuthenticator
3
- VERSION = '2.0.0'
3
+ VERSION = '2.0.1'
4
4
  end
5
5
  end
@@ -132,6 +132,19 @@ describe CASino::ActiveRecordAuthenticator do
132
132
  end
133
133
  end
134
134
 
135
+ context 'support for phpass' do
136
+ before do
137
+ described_class::User.create!(
138
+ username: 'test4',
139
+ password: '$P$9IQRaTwmfeRo7ud9Fh4E2PdI0S3r.L0', # password: test12345
140
+ mail_address: 'mail@example.org')
141
+ end
142
+
143
+ it 'is able to handle phpass password hashes' do
144
+ subject.validate('test4', 'test12345').should be_instance_of(Hash)
145
+ end
146
+ end
147
+
135
148
  end
136
149
 
137
150
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: casino-activerecord_authenticator
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-10-29 00:00:00.000000000 Z
13
+ date: 2013-11-27 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
@@ -92,22 +92,6 @@ dependencies:
92
92
  - - ! '>='
93
93
  - !ruby/object:Gem::Version
94
94
  version: '0'
95
- - !ruby/object:Gem::Dependency
96
- name: fivemat
97
- requirement: !ruby/object:Gem::Requirement
98
- none: false
99
- requirements:
100
- - - ! '>='
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
- type: :development
104
- prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
95
  - !ruby/object:Gem::Dependency
112
96
  name: activerecord
113
97
  requirement: !ruby/object:Gem::Requirement
@@ -172,6 +156,22 @@ dependencies:
172
156
  - - ~>
173
157
  - !ruby/object:Gem::Version
174
158
  version: '2.0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: phpass-ruby
161
+ requirement: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ~>
165
+ - !ruby/object:Gem::Version
166
+ version: '0.1'
167
+ type: :runtime
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ~>
173
+ - !ruby/object:Gem::Version
174
+ version: '0.1'
175
175
  description: This gem can be used to allow the CASino backend to authenticate against
176
176
  an SQL server using ActiveRecord.
177
177
  email: