omniauth-dice 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +2 -4
- data/.rubocop.yml +1 -0
- data/.rubocop_todo.yml +28 -0
- data/.travis.yml +4 -8
- data/README.md +1 -1
- data/Rakefile +1 -4
- data/lib/omniauth/dice/version.rb +3 -1
- data/lib/omniauth/strategies/dice.rb +45 -41
- data/lib/omniauth-dice.rb +2 -0
- data/lib/string.rb +4 -4
- data/omniauth-dice.gemspec +13 -9
- data/spec/omniauth/strategies/dice_integrations_spec.rb +3 -3
- data/spec/omniauth/strategies/dice_spec.rb +4 -4
- data/spec/spec_helper.rb +4 -5
- data.tar.gz.sig +1 -1
- metadata +9 -6
- 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: cccb953b0986b8fc29ff2de197253aeed50f5333
|
4
|
+
data.tar.gz: eec5d53a5a4d955873f7202761c08dd01a55c4fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8900202b7364d2ca8737c1dd5d697fa4b7ee1c45e364be9b6fbab98681545ea81136d17d0c7fad04a401df25f9c16619a269791c27dfe878a57284f02314ad2d
|
7
|
+
data.tar.gz: 829c9b3b3963c7c23835e2da9f28001f5af1b4761527254df53f599cb66beed03534a1b111bb5e4a5e05e5a4567432a02885ee0883e975721425440eba5529c9
|
checksums.yaml.gz.sig
CHANGED
@@ -1,4 +1,2 @@
|
|
1
|
-
G
|
2
|
-
|
3
|
-
��ڬ�o>����M�\�r>���6�g��j���4�$����
|
4
|
-
��"������JM12�K�&���Dx��Z�@&���u��rS�*�Z]��,3h��I;y�6��P�@y{DzeZu���l�#�����pF9�����Z)�"�O�;�D1��A�3��5�@Qu���{,�a���ʍ�݊��.]֫� � p}w9F�Ȭb��&
|
1
|
+
�R-:k��'ޑܓ���H��*�=g���'|Z+��F,5�J�'ǜ��22�:�QY���@�}�~:���:��dn��:�G�f����&�7�Z�2�9�_U�OQ�����a\�RJ�k$>���=(�d����3M���4>b���9��j0/<��8dzk9�};�(���B7w����'��(�c��b^vz&��b���T�P���5.�4���
|
2
|
+
�������kg����Aؗb���˙D���d�M����
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# This configuration was generated by `rubocop --auto-gen-config`
|
2
|
+
# on 2015-08-10 15:52:39 -0400 using RuboCop version 0.28.0.
|
3
|
+
# The point is for the user to remove these configuration records
|
4
|
+
# one by one as the offenses are removed from the code base.
|
5
|
+
# Note that changes in the inspected code, or installation of new
|
6
|
+
# versions of RuboCop, may require this file to be generated again.
|
7
|
+
|
8
|
+
# Offense count: 2
|
9
|
+
Metrics/AbcSize:
|
10
|
+
Max: 17
|
11
|
+
|
12
|
+
# Offense count: 1
|
13
|
+
# Configuration parameters: CountComments.
|
14
|
+
Metrics/ClassLength:
|
15
|
+
Max: 273
|
16
|
+
|
17
|
+
# Offense count: 1
|
18
|
+
Metrics/CyclomaticComplexity:
|
19
|
+
Max: 7
|
20
|
+
|
21
|
+
# Offense count: 3
|
22
|
+
# Configuration parameters: CountComments.
|
23
|
+
Metrics/MethodLength:
|
24
|
+
Max: 12
|
25
|
+
|
26
|
+
# Offense count: 1
|
27
|
+
Style/AccessorMethodName:
|
28
|
+
Enabled: false
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Omniauth::Dice [![Gem Version](https://badge.fury.io/rb/omniauth-dice.png)](http://badge.fury.io/rb/omniauth-dice)
|
2
2
|
|
3
|
-
[![Travis CI](https://travis-ci.org/stevenhaddox/omniauth-dice.svg?branch=master)](https://travis-ci.org/stevenhaddox/omniauth-dice) [![Dependency Status](https://gemnasium.com/stevenhaddox/omniauth-dice.png)](https://gemnasium.com/stevenhaddox/omniauth-dice) [![Coverage
|
3
|
+
[![Travis CI](https://travis-ci.org/stevenhaddox/omniauth-dice.svg?branch=master)](https://travis-ci.org/stevenhaddox/omniauth-dice) [![Dependency Status](https://gemnasium.com/stevenhaddox/omniauth-dice.png)](https://gemnasium.com/stevenhaddox/omniauth-dice) [![Test Coverage](https://codeclimate.com/github/stevenhaddox/omniauth-dice/badges/coverage.svg)](https://codeclimate.com/github/stevenhaddox/omniauth-dice/coverage) [![Code Climate](https://codeclimate.com/github/stevenhaddox/omniauth-dice/badges/gpa.svg)](https://codeclimate.com/github/stevenhaddox/omniauth-dice) [![Inline docs](http://inch-ci.org/github/stevenhaddox/omniauth-dice.svg?branch=master)](http://inch-ci.org/github/stevenhaddox/omniauth-dice)
|
4
4
|
|
5
5
|
# **D**N **I**nteroperable **C**onversion **E**xpert
|
6
6
|
|
data/Rakefile
CHANGED
@@ -1,11 +1,8 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
2
|
require 'rspec/core/rake_task'
|
3
3
|
require 'rubocop/rake_task'
|
4
|
-
require 'coveralls/rake/task'
|
5
|
-
Coveralls::RakeTask.new
|
6
4
|
|
7
|
-
|
8
|
-
task default: [:spec, 'coveralls:push']
|
5
|
+
task default: [:spec, :rubocop]
|
9
6
|
|
10
7
|
desc 'Run specs'
|
11
8
|
RSpec::Core::RakeTask.new(:spec)
|
@@ -7,9 +7,10 @@ require 'dnc'
|
|
7
7
|
|
8
8
|
class RequiredCustomParamError < StandardError; end
|
9
9
|
|
10
|
+
# OmniAuth Dice strategy
|
10
11
|
module OmniAuth
|
12
|
+
# OmniAuth Dice strategy
|
11
13
|
module Strategies
|
12
|
-
|
13
14
|
#
|
14
15
|
# Provides omniauth authentication integration with a CAS server
|
15
16
|
#
|
@@ -98,12 +99,12 @@ module OmniAuth
|
|
98
99
|
|
99
100
|
def auth_hash
|
100
101
|
log :debug, '.auth_hash'
|
101
|
-
Hashie::Mash.new(
|
102
|
+
Hashie::Mash.new(
|
102
103
|
'provider' => name,
|
103
104
|
'uid' => uid,
|
104
105
|
'info' => info,
|
105
106
|
'extra' => extra
|
106
|
-
|
107
|
+
)
|
107
108
|
end
|
108
109
|
|
109
110
|
# Set the user's uid field for the auth_hash
|
@@ -156,7 +157,7 @@ module OmniAuth
|
|
156
157
|
def authenticate_user
|
157
158
|
issuer_dn = env['omniauth.params']['issuer_dn']
|
158
159
|
if issuer_dn
|
159
|
-
response = connection.get query_url,
|
160
|
+
response = connection.get query_url, issuerDn: issuer_dn
|
160
161
|
else
|
161
162
|
response = connection.get query_url
|
162
163
|
end
|
@@ -197,7 +198,7 @@ module OmniAuth
|
|
197
198
|
def auth_info_custom(info)
|
198
199
|
info['common_name'] = get_dn(info['dn']).cn
|
199
200
|
set_name(info)
|
200
|
-
|
201
|
+
includes_primary_visa?(info)
|
201
202
|
info['likely_npe?'] = identify_npe(info)
|
202
203
|
|
203
204
|
info
|
@@ -208,19 +209,19 @@ module OmniAuth
|
|
208
209
|
# Do NOT override the value if it's returned from the CAS server
|
209
210
|
return info['name'] if info['name']
|
210
211
|
info['name'] = case options.name_format
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
212
|
+
when :cn
|
213
|
+
info['common_name']
|
214
|
+
when :full_name
|
215
|
+
info['full_name']
|
216
|
+
when :first_last_name
|
217
|
+
"#{info['first_name']} #{info['last_name']}"
|
218
|
+
end
|
218
219
|
info['name'] ||= info['common_name'] || info['full_name'] ||
|
219
220
|
"#{info['first_name']} #{info['last_name']}"
|
220
221
|
end
|
221
222
|
|
222
223
|
# Determine if client has the primary visa
|
223
|
-
def
|
224
|
+
def includes_primary_visa?(info)
|
224
225
|
return info['primary_visa?'] = false unless info['visas']
|
225
226
|
return info['primary_visa?'] = false unless options.primary_visa
|
226
227
|
info['primary_visa?'] = info['visas'].include?(options.primary_visa)
|
@@ -237,12 +238,12 @@ module OmniAuth
|
|
237
238
|
|
238
239
|
# Identify if there's a domain w/ TLD in the common_name
|
239
240
|
def auth_cn_with_tld?(common_name)
|
240
|
-
|
241
|
+
/\w{2}\.\w+(\.\w{3,}+)?/.match(common_name).nil? ? false : true
|
241
242
|
end
|
242
243
|
|
243
244
|
# Determine if the auth_hash does not have an email address
|
244
245
|
def auth_info_missing_email?(info)
|
245
|
-
!(
|
246
|
+
!(info['email']) # !! returns false if no email, ! returns true
|
246
247
|
end
|
247
248
|
|
248
249
|
# Determine if the auth_hash has an email but no name fields
|
@@ -259,16 +260,12 @@ module OmniAuth
|
|
259
260
|
|
260
261
|
# Determine if any name fields are present in the auth_hash['info']
|
261
262
|
def auth_info_has_any_name?(info)
|
262
|
-
|
263
|
-
name ||= info['first_name']
|
264
|
-
name ||= info['last_name']
|
265
|
-
!!(name)
|
263
|
+
[info['full_name'], info['first_name'], info['last_name']].any?
|
266
264
|
end
|
267
265
|
|
268
266
|
# Coordinate getting DN from cert, fallback to header
|
269
|
-
def get_dn_by_type(type='subject')
|
270
|
-
|
271
|
-
raw_dn ||= get_dn_from_header(type)
|
267
|
+
def get_dn_by_type(type = 'subject')
|
268
|
+
get_dn_from_certificate(type) || get_dn_from_header(type)
|
272
269
|
end
|
273
270
|
|
274
271
|
# Reads the DN from headers
|
@@ -298,7 +295,7 @@ module OmniAuth
|
|
298
295
|
end
|
299
296
|
|
300
297
|
# Parse the DN out of an SSL X509 Client Certificate
|
301
|
-
def parse_dn_from_certificate(certificate, type='subject')
|
298
|
+
def parse_dn_from_certificate(certificate, type = 'subject')
|
302
299
|
certificate.send(type.to_sym).to_s
|
303
300
|
end
|
304
301
|
|
@@ -307,11 +304,11 @@ module OmniAuth
|
|
307
304
|
log :debug, '.connection'
|
308
305
|
|
309
306
|
@conn ||= Faraday.new(url: options.cas_server, ssl: ssl_hash) do |conn|
|
310
|
-
conn.headers
|
307
|
+
conn.headers = headers
|
311
308
|
conn.response :logger # log requests to STDOUT
|
312
|
-
conn.response :xml, :
|
313
|
-
conn.response :json, :
|
314
|
-
conn.adapter
|
309
|
+
conn.response :xml, content_type: /\bxml$/
|
310
|
+
conn.response :json, content_type: /\bjson$/
|
311
|
+
conn.adapter :excon
|
315
312
|
end
|
316
313
|
end
|
317
314
|
|
@@ -326,17 +323,26 @@ module OmniAuth
|
|
326
323
|
|
327
324
|
# Build out the query URL for CAS server with DN params
|
328
325
|
def query_url
|
329
|
-
user_dn
|
330
|
-
build_query
|
326
|
+
user_dn = env['omniauth.params']['user_dn']
|
327
|
+
build_query = "#{options.cas_server}#{options.authentication_path}"
|
331
328
|
build_query += "/#{user_dn}"
|
332
329
|
build_query += "/#{options.return_field}.#{options.format}"
|
333
|
-
URI
|
330
|
+
URI.encode(build_query)
|
334
331
|
end
|
335
332
|
|
336
333
|
# Detect data format, parse with appropriate library
|
337
334
|
def parse_response_data
|
338
335
|
log :debug, '.parse_response_data'
|
339
336
|
log :debug, "cas_server response.body:\r\n#{@raw_data}"
|
337
|
+
formatted_data = format_data
|
338
|
+
formatted_data = formatted_data.nil? ? @raw_data : formatted_data
|
339
|
+
log :debug, "Formatted response.body: #{formatted_data}"
|
340
|
+
|
341
|
+
formatted_data
|
342
|
+
end
|
343
|
+
|
344
|
+
# Parse data by specified format
|
345
|
+
def format_data
|
340
346
|
formatted_data = nil
|
341
347
|
unless @raw_data.class == Hash # Webmock hack
|
342
348
|
case options.format.to_sym
|
@@ -346,21 +352,19 @@ module OmniAuth
|
|
346
352
|
formatted_data = MultiXml.parse(@raw_data)['userinfo']
|
347
353
|
end
|
348
354
|
end
|
349
|
-
formatted_data = formatted_data.nil? ? @raw_data : formatted_data
|
350
|
-
log :debug, "Formatted response.body data: #{formatted_data}"
|
351
355
|
|
352
356
|
formatted_data
|
353
357
|
end
|
354
358
|
|
355
|
-
def set_session_dn(dn_string, type='subject')
|
359
|
+
def set_session_dn(dn_string, type = 'subject')
|
356
360
|
dn_type = case type
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
361
|
+
when 'subject'
|
362
|
+
'user_dn'
|
363
|
+
when 'issuer'
|
364
|
+
'issuer_dn'
|
365
|
+
else
|
366
|
+
fail 'Invalid DN string type'
|
367
|
+
end
|
364
368
|
session['omniauth.params'] ||= {}
|
365
369
|
session['omniauth.params'][dn_type] = dn_string
|
366
370
|
end
|
@@ -399,7 +403,7 @@ module OmniAuth
|
|
399
403
|
custom_order = %w(cn l st ou o c street dc uid)
|
400
404
|
default_opts = { dn_string: dn_str, string_order: custom_order }
|
401
405
|
dnc_config = unhashie(options.dnc_options)
|
402
|
-
DN.new(
|
406
|
+
DN.new(default_opts.merge(dnc_config))
|
403
407
|
end
|
404
408
|
end
|
405
409
|
end
|
data/lib/omniauth-dice.rb
CHANGED
data/lib/string.rb
CHANGED
@@ -4,9 +4,9 @@
|
|
4
4
|
class String
|
5
5
|
# Attempts to convert a string into a formatted_snake_case_string
|
6
6
|
def to_snake
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
8
|
+
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
9
|
+
.tr('-', '_')
|
10
|
+
.downcase
|
11
11
|
end
|
12
12
|
end
|
data/omniauth-dice.gemspec
CHANGED
@@ -8,22 +8,24 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Omniauth::Dice::VERSION
|
9
9
|
spec.authors = ['Steven Haddox']
|
10
10
|
spec.email = ['steven.haddox@gmail.com']
|
11
|
-
spec.summary =
|
12
|
-
spec.description =
|
13
|
-
|
14
|
-
|
11
|
+
spec.summary = 'DN Interoperable Conversion Expert Strategy'
|
12
|
+
spec.description = 'Simple gem to enable rack powered Ruby apps to
|
13
|
+
authenticate via REST with an enterprise CAS authentication server via X509
|
14
|
+
client certificates.'
|
15
|
+
spec.homepage = 'https://github.com/stevenhaddox/omniauth-dice'
|
16
|
+
spec.license = 'MIT'
|
15
17
|
|
16
18
|
spec.files = `git ls-files -z`.split("\x0")
|
17
|
-
spec.executables = spec.files.grep(
|
18
|
-
spec.test_files = spec.files.grep(
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.executables = spec.files.grep(/^bin\//) { |f| File.basename(f) }
|
20
|
+
spec.test_files = spec.files.grep(/^(test|spec|features)\//)
|
21
|
+
spec.require_paths = ['lib']
|
20
22
|
|
21
23
|
spec.required_ruby_version = '>= 1.9.3'
|
22
24
|
|
23
25
|
spec.add_development_dependency 'awesome_print'
|
24
26
|
spec.add_development_dependency 'bundler'
|
25
27
|
spec.add_development_dependency 'capybara'
|
26
|
-
spec.add_development_dependency '
|
28
|
+
spec.add_development_dependency 'codeclimate-test-reporter'
|
27
29
|
spec.add_development_dependency 'rack_session_access'
|
28
30
|
spec.add_development_dependency 'redcarpet'
|
29
31
|
spec.add_development_dependency 'rspec'
|
@@ -46,5 +48,7 @@ Gem::Specification.new do |spec|
|
|
46
48
|
spec.add_dependency 'omniauth', '~> 1.0'
|
47
49
|
|
48
50
|
spec.cert_chain = ['certs/stevenhaddox.pem']
|
49
|
-
|
51
|
+
if $PROGRAM_NAME =~ /gem\z/
|
52
|
+
spec.signing_key = File.expand_path('~/.gem/certs/gem-private_key.pem')
|
53
|
+
end
|
50
54
|
end
|
@@ -176,7 +176,7 @@ describe OmniAuth::Strategies::Dice, type: :strategy do
|
|
176
176
|
primary_visa: 'CLOUDSDALE'
|
177
177
|
})
|
178
178
|
|
179
|
-
stub_request(:get, "https://example.org:3000/dn/cn=ruby%20certificate%20rbcert,dc=ruby-lang,dc=org/info.json?
|
179
|
+
stub_request(:get, "https://example.org:3000/dn/cn=ruby%20certificate%20rbcert,dc=ruby-lang,dc=org/info.json?issuerDn=cn=ruby%20ca,dc=ruby-lang,dc=org").
|
180
180
|
with(:headers => {'Accept'=>'application/json', 'Content-Type'=>'application/json', 'Host'=>'example.org:3000', 'User-Agent'=>/^Faraday via Ruby.*$/, 'X-Xsrf-Useprotection'=>'false'}).
|
181
181
|
to_return(status: 200, body: valid_user_json, headers: {})
|
182
182
|
end
|
@@ -212,7 +212,7 @@ describe OmniAuth::Strategies::Dice, type: :strategy do
|
|
212
212
|
client_key: 'spec/certs/key.np.pem'
|
213
213
|
}
|
214
214
|
})
|
215
|
-
stub_request(:get, "https://example.org:3000/dn/cn=ruby%20certificate%20rbcert,dc=ruby-lang,dc=org/info.xml?
|
215
|
+
stub_request(:get, "https://example.org:3000/dn/cn=ruby%20certificate%20rbcert,dc=ruby-lang,dc=org/info.xml?issuerDn=cn=ruby%20ca,dc=ruby-lang,dc=org").
|
216
216
|
with(:headers => {'Accept'=>'application/xml', 'Content-Type'=>'application/xml', 'Host'=>'example.org:3000', 'User-Agent'=>/^Faraday via Ruby.*$/, 'X-Xsrf-Useprotection'=>'false'}).
|
217
217
|
to_return(status: 200, body: valid_user_xml, headers: {})
|
218
218
|
|
@@ -234,7 +234,7 @@ describe OmniAuth::Strategies::Dice, type: :strategy do
|
|
234
234
|
|
235
235
|
context 'fail' do
|
236
236
|
it 'should raise a 404 with text for a non-existent user DN' do
|
237
|
-
stub_request(:get, "https://example.org:3000/dn/cn=ruby%20certificate%20rbcert,dc=ruby-lang,dc=org/info.json?
|
237
|
+
stub_request(:get, "https://example.org:3000/dn/cn=ruby%20certificate%20rbcert,dc=ruby-lang,dc=org/info.json?issuerDn=cn=ruby%20ca,dc=ruby-lang,dc=org").
|
238
238
|
with(:headers => {'Accept'=>'application/json', 'Content-Type'=>'application/json', 'Host'=>'example.org:3000', 'User-Agent'=>/^Faraday via Ruby.*$/, 'X-Xsrf-Useprotection'=>'false'}).
|
239
239
|
to_return(status: 404, body: "User of dn:cn=ruby certificate rbcert,dc=ruby-lang,dc=org not found", headers: {})
|
240
240
|
|
@@ -81,7 +81,7 @@ describe OmniAuth::Strategies::Dice do
|
|
81
81
|
|
82
82
|
it 'should not set a name field if it is already defined' do
|
83
83
|
dice = OmniAuth::Strategies::Dice.new( app, dice_default_opts )
|
84
|
-
name = dice.send(
|
84
|
+
name = dice.send(:set_name, @info_hash.merge({'name' => 'nightmare moon'}) )
|
85
85
|
expect(name).to eq('nightmare moon')
|
86
86
|
end
|
87
87
|
|
@@ -176,19 +176,19 @@ describe OmniAuth::Strategies::Dice do
|
|
176
176
|
context ".primary_visa?" do
|
177
177
|
it 'should return false if no visas are defined' do
|
178
178
|
dice = OmniAuth::Strategies::Dice.new( app, dice_default_opts.merge({primary_visa: 'EQUESTRIA'}) )
|
179
|
-
visa_present = dice.send( :
|
179
|
+
visa_present = dice.send( :includes_primary_visa?, { } )
|
180
180
|
expect(visa_present).to eq(false)
|
181
181
|
end
|
182
182
|
|
183
183
|
it "should return false if the visa is not present in ['info']['visas']" do
|
184
184
|
dice = OmniAuth::Strategies::Dice.new( app, dice_default_opts.merge({primary_visa: 'EQUESTRIA'}) )
|
185
|
-
visa_present = dice.send( :
|
185
|
+
visa_present = dice.send( :includes_primary_visa?, {'visas' => ['CLOUDSDALE','PONYVILLE']} )
|
186
186
|
expect(visa_present).to eq(false)
|
187
187
|
end
|
188
188
|
|
189
189
|
it "should return true if the visa is present in ['info']['visas']" do
|
190
190
|
dice = OmniAuth::Strategies::Dice.new( app, dice_default_opts.merge({primary_visa: 'EQUESTRIA'}) )
|
191
|
-
visa_present = dice.send( :
|
191
|
+
visa_present = dice.send( :includes_primary_visa?, {'visas' => ['CLOUDSDALE','EQUESTRIA'] } )
|
192
192
|
expect(visa_present).to eq(true)
|
193
193
|
end
|
194
194
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,12 +1,9 @@
|
|
1
|
+
require 'codeclimate-test-reporter'
|
2
|
+
CodeClimate::TestReporter.start
|
1
3
|
require 'rubygems'
|
2
4
|
require 'bundler'
|
3
5
|
Bundler.setup :default, :development, :test
|
4
6
|
|
5
|
-
require 'simplecov'
|
6
|
-
SimpleCov.start do
|
7
|
-
add_filter '/spec/'
|
8
|
-
end
|
9
|
-
|
10
7
|
require 'capybara/rspec'
|
11
8
|
require 'rack_session_access'
|
12
9
|
require 'rack_session_access/capybara'
|
@@ -15,6 +12,8 @@ require 'awesome_print'
|
|
15
12
|
require 'rack/test'
|
16
13
|
require 'omniauth-dice'
|
17
14
|
|
15
|
+
# Enable codeclimate coverage reports
|
16
|
+
WebMock.disable_net_connect! allow: %w{codeclimate.com}
|
18
17
|
RSpec.configure do |config|
|
19
18
|
config.run_all_when_everything_filtered = true
|
20
19
|
config.include Rack::Test::Methods
|
data.tar.gz.sig
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
A����_%�u����X�ɟ%��(���K���~��-�vң����=�&"��H au,?a�҂vn4OtN���\l�Ug;�PƢ;[t�6Tv�Gb}tvYd�I�Ԋ^SE�K?p�j9B�I����
|
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.2.
|
4
|
+
version: 0.2.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-
|
33
|
+
date: 2015-08-11 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: awesome_print
|
@@ -75,7 +75,7 @@ dependencies:
|
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0'
|
77
77
|
- !ruby/object:Gem::Dependency
|
78
|
-
name:
|
78
|
+
name: codeclimate-test-reporter
|
79
79
|
requirement: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - ">="
|
@@ -354,8 +354,10 @@ dependencies:
|
|
354
354
|
- - "~>"
|
355
355
|
- !ruby/object:Gem::Version
|
356
356
|
version: '1.0'
|
357
|
-
description:
|
358
|
-
|
357
|
+
description: |-
|
358
|
+
Simple gem to enable rack powered Ruby apps to
|
359
|
+
authenticate via REST with an enterprise CAS authentication server via X509
|
360
|
+
client certificates.
|
359
361
|
email:
|
360
362
|
- steven.haddox@gmail.com
|
361
363
|
executables: []
|
@@ -365,6 +367,7 @@ files:
|
|
365
367
|
- ".coveralls.yml"
|
366
368
|
- ".gitignore"
|
367
369
|
- ".rubocop.yml"
|
370
|
+
- ".rubocop_todo.yml"
|
368
371
|
- ".travis.yml"
|
369
372
|
- ".yardopts"
|
370
373
|
- Gemfile
|
@@ -407,7 +410,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
407
410
|
version: '0'
|
408
411
|
requirements: []
|
409
412
|
rubyforge_project:
|
410
|
-
rubygems_version: 2.
|
413
|
+
rubygems_version: 2.4.4
|
411
414
|
signing_key:
|
412
415
|
specification_version: 4
|
413
416
|
summary: DN Interoperable Conversion Expert Strategy
|
metadata.gz.sig
CHANGED
Binary file
|