omniauth-dice 0.1.1 → 0.1.2
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
- checksums.yaml.gz.sig +0 -0
- data/README.md +12 -13
- data/lib/omniauth/dice/version.rb +1 -1
- data/lib/omniauth/strategies/dice.rb +23 -25
- data/omniauth-dice.gemspec +4 -4
- data/spec/omniauth/strategies/dice_integrations_spec.rb +2 -0
- data/spec/omniauth/strategies/dice_spec.rb +2 -2
- data.tar.gz.sig +0 -0
- metadata +19 -19
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f393f95195efb18da624ef331288b3f4876c997
|
4
|
+
data.tar.gz: 0b45003f60b7d5b42132bfaafeb692ccf7f36a5b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 332406fca56a0c52f8885a5741c3957d12c53820ffcaab8aaace6528f143f2884befe841c27c05e48ee9b456d87f72ef1f5515493857404942209392e531d557
|
7
|
+
data.tar.gz: 99604306f8bec41d99577182d0ebedfa93625b5d0ce27d602b4baeb46f654f498861b945b1711fe7ce74aadb30afdc4521c5f797c94471cd1dc6e7e06b47c362
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.md
CHANGED
@@ -32,6 +32,7 @@ Setup your OmniAuth::Dice builder like so:
|
|
32
32
|
authentication_path: '/dn',
|
33
33
|
format_header: 'application/xml', # default is 'application/json'
|
34
34
|
format: 'xml', # default is 'json'
|
35
|
+
primary_visa: 'EQUESTRIA', # Optional
|
35
36
|
dnc_options: { transformation: 'downcase' }, # see `dnc` gem for all options
|
36
37
|
ssl_config: {
|
37
38
|
ca_file: 'spec/certs/CA.pem',
|
@@ -43,25 +44,23 @@ Setup your OmniAuth::Dice builder like so:
|
|
43
44
|
|
44
45
|
Full configuration options are as follows:
|
45
46
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
format_header [String] 'application/json', 'application/xml', etc
|
47
|
+
* `cas_server` [String] Required base URL for CAS server
|
48
|
+
* `authentication_path` [String] URL path for endpoint, e.g. '/users'
|
49
|
+
* `return_field` [String] Optional path to append after DN string
|
50
|
+
* `ssl_config` [Hash] Configuration hash for `Faraday` SSL options
|
51
|
+
* `format_header` [String] 'application/json', 'application/xml', etc
|
52
52
|
Defaults to 'application/json'
|
53
|
-
format [String] 'json', 'xml', etc.
|
53
|
+
* `format` [String] 'json', 'xml', etc.
|
54
54
|
Defaults to 'json'
|
55
|
-
client_cert_header [String] ENV string to access user's X509 cert
|
55
|
+
* `client_cert_header` [String] ENV string to access user's X509 cert
|
56
56
|
Defaults to 'HTTP_SSL_CLIENT_CERT'
|
57
|
-
subject_dn_header [String] ENV string to access user's subject_dn
|
57
|
+
* `subject_dn_header` [String] ENV string to access user's subject_dn
|
58
58
|
Defaults to 'HTTP_SSLC_LIENT_S_DN'
|
59
|
-
issuer_dn_header [String] ENV string to access user's issuer_dn
|
59
|
+
* `issuer_dn_header` [String] ENV string to access user's issuer_dn
|
60
60
|
Defaults to 'HTTP_SSL_CLIENT_I_DN'
|
61
|
-
name_format [Symbol] Format for auth_hash['info']['name']
|
62
|
-
Defaults to attempting DN common name -> full name -> first & last name
|
61
|
+
* `name_format` [Symbol] Format for auth_hash['info']['name']
|
62
|
+
Defaults to attempting DN common name -> full name -> first & last name
|
63
63
|
Valid options are: :cn, :full_name, :first_last_name to override
|
64
|
-
```
|
65
64
|
|
66
65
|
### SSL Client Certificate Notes
|
67
66
|
|
@@ -36,8 +36,8 @@ module OmniAuth
|
|
36
36
|
attr_accessor :dn, :raw_dn, :data
|
37
37
|
args [:cas_server, :authentication_path]
|
38
38
|
|
39
|
-
def initialize(*args, &block)
|
40
|
-
|
39
|
+
def initialize(app, *args, &block)
|
40
|
+
required_params_defined?(args)
|
41
41
|
|
42
42
|
super
|
43
43
|
end
|
@@ -338,34 +338,32 @@ module OmniAuth
|
|
338
338
|
[:cas_server, :authentication_path]
|
339
339
|
end
|
340
340
|
|
341
|
-
#
|
342
|
-
# NOTE: CANNOT call "log" method from
|
343
|
-
def
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
341
|
+
# Determine if required arguments are present or fail hard
|
342
|
+
# NOTE: CANNOT call "log" method from within init block methods
|
343
|
+
def required_params_defined?(args)
|
344
|
+
required_hash = {}
|
345
|
+
required_params.each do |key|
|
346
|
+
required_hash[key] = false
|
347
|
+
end
|
348
|
+
args.each do |arg|
|
349
|
+
if arg.class == Hash
|
350
|
+
arg.each do |sub_arg, value|
|
351
|
+
required_hash[sub_arg] = true if required_hash[sub_arg] == false
|
352
|
+
end
|
353
|
+
else
|
354
|
+
required_hash[arg.to_sym] = true if required_hash[sub_arg] == false
|
353
355
|
end
|
354
356
|
end
|
357
|
+
required_hash.reject!{ |arg, val| arg if val == true }
|
358
|
+
fail_on_invalid_params(required_hash.keys) unless required_hash.empty?
|
355
359
|
end
|
356
360
|
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
if arg.key?(param.to_sym)
|
362
|
-
true
|
363
|
-
else
|
364
|
-
false
|
365
|
-
end
|
366
|
-
else
|
367
|
-
false
|
361
|
+
def fail_on_invalid_params(missing_params)
|
362
|
+
error_msg = ""
|
363
|
+
missing_params.each do |param|
|
364
|
+
error_msg += "omniauth-dice error: #{param} is required\r\n"
|
368
365
|
end
|
366
|
+
fail RequiredCustomParamError, error_msg
|
369
367
|
end
|
370
368
|
|
371
369
|
def set_session_dn(dn_string, type='subject')
|
data/omniauth-dice.gemspec
CHANGED
@@ -38,11 +38,11 @@ Gem::Specification.new do |spec|
|
|
38
38
|
|
39
39
|
spec.add_dependency 'cert_munger', '~> 0.1'
|
40
40
|
spec.add_dependency 'dnc', '~> 0.1'
|
41
|
-
spec.add_dependency 'excon'
|
42
|
-
spec.add_dependency 'faraday'
|
43
|
-
spec.add_dependency 'faraday_middleware'
|
41
|
+
spec.add_dependency 'excon', '~> 0.43'
|
42
|
+
spec.add_dependency 'faraday', '~> 0.9'
|
43
|
+
spec.add_dependency 'faraday_middleware', '~> 0.9'
|
44
44
|
spec.add_dependency 'logging', '~> 1.8'
|
45
|
-
spec.add_dependency 'multi_xml'
|
45
|
+
spec.add_dependency 'multi_xml', '~> 0.5'
|
46
46
|
spec.add_dependency 'omniauth', '~> 1.0'
|
47
47
|
|
48
48
|
spec.cert_chain = ['certs/stevenhaddox.pem']
|
@@ -62,6 +62,8 @@ describe OmniAuth::Strategies::Dice, type: :strategy do
|
|
62
62
|
self.app = Rack::Builder.app do
|
63
63
|
use Rack::Session::Cookie, :secret => '1337geeks'
|
64
64
|
use RackSessionAccess::Middleware
|
65
|
+
ap '-'*80
|
66
|
+
ap dice_options
|
65
67
|
use OmniAuth::Strategies::Dice, dice_options
|
66
68
|
run lambda{|env| [404, {'env' => env}, ["HELLO!"]]}
|
67
69
|
end
|
@@ -25,11 +25,11 @@ describe OmniAuth::Strategies::Dice do
|
|
25
25
|
let(:subject_without_authentication_path) { OmniAuth::Strategies::Dice.new(app, cas_server: 'https://dice.dev') }
|
26
26
|
|
27
27
|
it 'should require a cas server url' do
|
28
|
-
expect{ subject }.to raise_error(RequiredCustomParamError
|
28
|
+
expect{ subject }.to raise_error(RequiredCustomParamError)
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'should require an authentication path' do
|
32
|
-
expect{ subject_without_authentication_path }.to raise_error(RequiredCustomParamError
|
32
|
+
expect{ subject_without_authentication_path }.to raise_error(RequiredCustomParamError)
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-dice
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Haddox
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
42qdwEXvvkODZAD6KAIXPdmbMfBgPbcd+B/4eUA0PyKo+4dgL1NuqX4MPWToevIZ
|
31
31
|
O8EKLF2X7NmC6FY1bOsSj/J8r1SOkx0rxgF+geRvY1P+hfNjDfxTsjU=
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2015-01-
|
33
|
+
date: 2015-01-31 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: awesome_print
|
@@ -274,44 +274,44 @@ dependencies:
|
|
274
274
|
name: excon
|
275
275
|
requirement: !ruby/object:Gem::Requirement
|
276
276
|
requirements:
|
277
|
-
- - "
|
277
|
+
- - "~>"
|
278
278
|
- !ruby/object:Gem::Version
|
279
|
-
version: '0'
|
279
|
+
version: '0.43'
|
280
280
|
type: :runtime
|
281
281
|
prerelease: false
|
282
282
|
version_requirements: !ruby/object:Gem::Requirement
|
283
283
|
requirements:
|
284
|
-
- - "
|
284
|
+
- - "~>"
|
285
285
|
- !ruby/object:Gem::Version
|
286
|
-
version: '0'
|
286
|
+
version: '0.43'
|
287
287
|
- !ruby/object:Gem::Dependency
|
288
288
|
name: faraday
|
289
289
|
requirement: !ruby/object:Gem::Requirement
|
290
290
|
requirements:
|
291
|
-
- - "
|
291
|
+
- - "~>"
|
292
292
|
- !ruby/object:Gem::Version
|
293
|
-
version: '0'
|
293
|
+
version: '0.9'
|
294
294
|
type: :runtime
|
295
295
|
prerelease: false
|
296
296
|
version_requirements: !ruby/object:Gem::Requirement
|
297
297
|
requirements:
|
298
|
-
- - "
|
298
|
+
- - "~>"
|
299
299
|
- !ruby/object:Gem::Version
|
300
|
-
version: '0'
|
300
|
+
version: '0.9'
|
301
301
|
- !ruby/object:Gem::Dependency
|
302
302
|
name: faraday_middleware
|
303
303
|
requirement: !ruby/object:Gem::Requirement
|
304
304
|
requirements:
|
305
|
-
- - "
|
305
|
+
- - "~>"
|
306
306
|
- !ruby/object:Gem::Version
|
307
|
-
version: '0'
|
307
|
+
version: '0.9'
|
308
308
|
type: :runtime
|
309
309
|
prerelease: false
|
310
310
|
version_requirements: !ruby/object:Gem::Requirement
|
311
311
|
requirements:
|
312
|
-
- - "
|
312
|
+
- - "~>"
|
313
313
|
- !ruby/object:Gem::Version
|
314
|
-
version: '0'
|
314
|
+
version: '0.9'
|
315
315
|
- !ruby/object:Gem::Dependency
|
316
316
|
name: logging
|
317
317
|
requirement: !ruby/object:Gem::Requirement
|
@@ -330,16 +330,16 @@ dependencies:
|
|
330
330
|
name: multi_xml
|
331
331
|
requirement: !ruby/object:Gem::Requirement
|
332
332
|
requirements:
|
333
|
-
- - "
|
333
|
+
- - "~>"
|
334
334
|
- !ruby/object:Gem::Version
|
335
|
-
version: '0'
|
335
|
+
version: '0.5'
|
336
336
|
type: :runtime
|
337
337
|
prerelease: false
|
338
338
|
version_requirements: !ruby/object:Gem::Requirement
|
339
339
|
requirements:
|
340
|
-
- - "
|
340
|
+
- - "~>"
|
341
341
|
- !ruby/object:Gem::Version
|
342
|
-
version: '0'
|
342
|
+
version: '0.5'
|
343
343
|
- !ruby/object:Gem::Dependency
|
344
344
|
name: omniauth
|
345
345
|
requirement: !ruby/object:Gem::Requirement
|
@@ -407,7 +407,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
407
407
|
version: '0'
|
408
408
|
requirements: []
|
409
409
|
rubyforge_project:
|
410
|
-
rubygems_version: 2.
|
410
|
+
rubygems_version: 2.2.2
|
411
411
|
signing_key:
|
412
412
|
specification_version: 4
|
413
413
|
summary: DN Interoperable Conversion Expert Strategy
|
metadata.gz.sig
CHANGED
Binary file
|