g5_authentication_client 0.5.2 → 0.5.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/.ruby-version +1 -1
- data/CHANGELOG.md +10 -0
- data/lib/g5_authentication_client/client.rb +11 -1
- data/lib/g5_authentication_client/error.rb +5 -0
- data/lib/g5_authentication_client/version.rb +1 -1
- data/lib/g5_authentication_client.rb +1 -0
- data/spec/g5_authentication_client/client_spec.rb +22 -38
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7463214386cb26b951d8a2046fc473956679b4af
|
4
|
+
data.tar.gz: e1d54d81273360a07c93795346943ad71e2e21dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51a5fbf9a712e05f1c9ab9e977da28d30d99ae4dbe0ab9d561fea5df207e9ff7ce5569a501f888b2af0db94695494b18e1ca520c9352064079f066bbeed34836
|
7
|
+
data.tar.gz: 71e4dc676d3734ba9b35049506222d2e94b282889bb51e396ec73b404955cdbb86abae0c499e9da15956b67ebfea9611031186935822cfc34ff5a70324ae2c8b
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.1.6
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## v0.5.3
|
2
|
+
|
3
|
+
* `Client#username_pw_access_token`: raise error when username/password are blank
|
4
|
+
([#29](https://github.com/G5/g5_authentication_client/pull/29))
|
5
|
+
|
6
|
+
## v0.5.2
|
7
|
+
|
8
|
+
* convenience method for access tokens
|
9
|
+
([#27](https://github.com/G5/g5_authentication_client/pull/27))
|
10
|
+
|
1
11
|
## v0.5.1 (2015-08-21)
|
2
12
|
|
3
13
|
* Allow user attributes to be selectively updated
|
@@ -69,7 +69,7 @@ module G5AuthenticationClient
|
|
69
69
|
# Tells whether a client instance will use the username/password credentials
|
70
70
|
# @return [Boolean] whether the client will use username/password
|
71
71
|
def allow_password_credentials?
|
72
|
-
allow_password_credentials=='true'
|
72
|
+
allow_password_credentials=='true'
|
73
73
|
end
|
74
74
|
|
75
75
|
# Retrieves the access token as a string
|
@@ -185,12 +185,22 @@ module G5AuthenticationClient
|
|
185
185
|
end
|
186
186
|
|
187
187
|
def username_pw_access_token
|
188
|
+
raise_if_blank('username')
|
189
|
+
raise_if_blank('password')
|
188
190
|
raise 'allow_password_credentials must be enabled for username/pw access' unless allow_password_credentials?
|
189
191
|
oauth_client.password.get_token(username, password)
|
190
192
|
end
|
191
193
|
|
192
194
|
private
|
193
195
|
|
196
|
+
def raise_if_blank(client_attribute)
|
197
|
+
attr = send(client_attribute)
|
198
|
+
if attr.nil? || attr.strip == ''
|
199
|
+
raise G5AuthenticationClient::Error.
|
200
|
+
new("#{client_attribute} is blank, provide a #{client_attribute} by setting it in the client instance or adding a G5_AUTH_#{client_attribute.upcase} env variable.")
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
194
204
|
def user_hash(h)
|
195
205
|
user_params = h.reject { |k,v| k == 'id' || v.nil? || v.empty? }
|
196
206
|
{ user: user_params }
|
@@ -5,6 +5,7 @@ require 'g5_authentication_client/user'
|
|
5
5
|
require 'g5_authentication_client/token_info'
|
6
6
|
require 'g5_authentication_client/role'
|
7
7
|
require 'g5_authentication_client/auth_token_helper'
|
8
|
+
require 'g5_authentication_client/error'
|
8
9
|
|
9
10
|
module G5AuthenticationClient
|
10
11
|
extend Configuration
|
@@ -17,7 +17,8 @@ describe G5AuthenticationClient::Client do
|
|
17
17
|
let(:authorization_code){ 'code' }
|
18
18
|
let(:allow_password_credentials){ 'false' }
|
19
19
|
|
20
|
-
let(:options)
|
20
|
+
let(:options) { default_options }
|
21
|
+
let(:default_options) do
|
21
22
|
{
|
22
23
|
debug: debug,
|
23
24
|
logger: logger,
|
@@ -128,9 +129,6 @@ describe G5AuthenticationClient::Client do
|
|
128
129
|
expect(client.allow_password_credentials).to eq('true')
|
129
130
|
end
|
130
131
|
|
131
|
-
it 'username_pw_access_token raises error when password credentials not enabled' do
|
132
|
-
expect { client.username_pw_access_token }.to raise_error('allow_password_credentials must be enabled for username/pw access')
|
133
|
-
end
|
134
132
|
end
|
135
133
|
|
136
134
|
context 'with non-default configuration' do
|
@@ -262,37 +260,12 @@ describe G5AuthenticationClient::Client do
|
|
262
260
|
|
263
261
|
context 'when the allow_password_credentials is set to true' do
|
264
262
|
let(:allow_password_credentials) {'true'}
|
265
|
-
|
266
|
-
context 'with non-nil username and password' do
|
267
|
-
|
268
|
-
it 'should be true' do
|
269
|
-
expect(subject).to be true
|
270
|
-
end
|
271
|
-
end
|
272
|
-
|
273
|
-
context 'when username is nil' do
|
274
|
-
let(:username) {}
|
275
|
-
|
276
|
-
it 'should be false' do
|
277
|
-
expect(subject).to be false
|
278
|
-
end
|
279
|
-
end
|
280
|
-
|
281
|
-
context 'when password is nil' do
|
282
|
-
let(:password) {}
|
283
|
-
|
284
|
-
it 'should be false' do
|
285
|
-
expect(subject).to be false
|
286
|
-
end
|
287
|
-
end
|
263
|
+
it { is_expected.to be true }
|
288
264
|
end
|
289
265
|
|
290
266
|
context 'when the allow_password_credentials is set to false' do
|
291
267
|
let(:allow_password_credentials) {'false'}
|
292
|
-
|
293
|
-
it 'should be false' do
|
294
|
-
expect(subject).to be false
|
295
|
-
end
|
268
|
+
it { is_expected.to be false }
|
296
269
|
end
|
297
270
|
end
|
298
271
|
|
@@ -523,22 +496,33 @@ describe G5AuthenticationClient::Client do
|
|
523
496
|
end
|
524
497
|
end
|
525
498
|
|
526
|
-
|
499
|
+
describe '#username_pw_access_token' do
|
527
500
|
let(:token) {'asdf'}
|
528
501
|
before do
|
529
502
|
oauth_client = double(OAuth2::AccessToken, password: double(:pw, get_token: token))
|
530
503
|
allow(client).to receive(:oauth_client).and_return(oauth_client)
|
504
|
+
client.allow_password_credentials = 'true'
|
531
505
|
end
|
532
506
|
|
533
|
-
|
534
|
-
let(:returned_token) { {access_token: 'asdf'} }
|
535
|
-
before do
|
536
|
-
client.allow_password_credentials = 'true'
|
537
|
-
end
|
538
|
-
|
507
|
+
context 'allow_password_credentials is `true`' do
|
539
508
|
it 'delegates token retrieval to oauth_client' do
|
540
509
|
expect(client.username_pw_access_token).to eq(token)
|
541
510
|
end
|
542
511
|
end
|
512
|
+
|
513
|
+
context 'username is blank' do
|
514
|
+
let(:options) { default_options.merge(username: " ") }
|
515
|
+
it 'raises an error' do
|
516
|
+
expect { client.username_pw_access_token }.to raise_error(G5AuthenticationClient::Error, 'username is blank, provide a username by setting it in the client instance or adding a G5_AUTH_USERNAME env variable.')
|
517
|
+
end
|
518
|
+
end
|
519
|
+
|
520
|
+
context 'password is blank' do
|
521
|
+
let(:options) { default_options.merge(password: " ") }
|
522
|
+
it 'raises an error' do
|
523
|
+
expect { client.username_pw_access_token }.to raise_error(G5AuthenticationClient::Error, 'password is blank, provide a password by setting it in the client instance or adding a G5_AUTH_PASSWORD env variable.')
|
524
|
+
end
|
525
|
+
end
|
543
526
|
end
|
527
|
+
|
544
528
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: g5_authentication_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Revels
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-01-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: modelish
|
@@ -215,6 +215,7 @@ files:
|
|
215
215
|
- lib/g5_authentication_client/auth_token_helper.rb
|
216
216
|
- lib/g5_authentication_client/client.rb
|
217
217
|
- lib/g5_authentication_client/configuration.rb
|
218
|
+
- lib/g5_authentication_client/error.rb
|
218
219
|
- lib/g5_authentication_client/role.rb
|
219
220
|
- lib/g5_authentication_client/token_info.rb
|
220
221
|
- lib/g5_authentication_client/user.rb
|
@@ -248,7 +249,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
248
249
|
version: '0'
|
249
250
|
requirements: []
|
250
251
|
rubyforge_project: g5_authentication_client
|
251
|
-
rubygems_version: 2.4.
|
252
|
+
rubygems_version: 2.4.8
|
252
253
|
signing_key:
|
253
254
|
specification_version: 4
|
254
255
|
summary: Client for the G5 Auth service
|