omniauth-openid-reconnect 0.2.0

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6ac684f14c57c3468045dfdbb8fe9e5a5012809c
4
+ data.tar.gz: 77c0bd513d3ec1578e7035aa86332ff4965dfec3
5
+ SHA512:
6
+ metadata.gz: 04974f9ccd0aab6878b9fb24b378979fe5bcc0df7dc7ee57ff8419a562433d2204e28ecdb97c991269cc09186aa4d6bef15fb4f8ce64c3ecfb541616b2ca78d6
7
+ data.tar.gz: 29b3976d0e0d443fc82d1dc9beee3d87c099962454c1172503f05ca2eecbd15056db21844fed4f2914e2fa4aefaaf9d2eabeecdfba7c3627d7767d1b5d68ead7
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .ruby-version
@@ -0,0 +1,6 @@
1
+ rvm:
2
+ - 1.9.3
3
+ - 2.0.0
4
+ - 2.1.0
5
+ - jruby
6
+ - rbx
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
@@ -0,0 +1,14 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'minitest' do
5
+ # with Minitest::Unit
6
+ watch(%r|^test/(.*)\/(.*)_test\.rb|)
7
+ watch(%r|^lib/(.*)\.rb|) { |m| "test/lib/#{m[1]}_test.rb" }
8
+ watch(%r|^test/test_helper\.rb|) { "test" }
9
+ end
10
+
11
+ guard :bundler do
12
+ watch('Gemfile')
13
+ watch(/^.+\.gemspec/)
14
+ end
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 John Bohn
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,69 @@
1
+ # OmniAuth::OpenIDConnect
2
+ OpenID Connect strategy for OmniAuth
3
+ [![Gem Version](https://badge.fury.io/rb/omniauth-openid-reconnect.png)](http://badge.fury.io/rb/omniauth-openid-reconnect)
4
+ [![Build Status](https://travis-ci.org/thinkthroughmath/omniauth-openid-reconnect.svg?branch=master)](https://travis-ci.org/thinkthroughmath/omniauth-openid-reconnect)
5
+ [![Coverage Status](https://coveralls.io/repos/thinkthroughmath/omniauth-openid-reconnect/badge.png?branch=master)](https://coveralls.io/r/thinkthroughmath/omniauth-openid-reconnect?branch=master)
6
+ [![Code Climate](https://codeclimate.com/github/thinkthroughmath/omniauth-openid-reconnect.png)](https://codeclimate.com/github/thinkthroughmath/omniauth-openid-reconnect)
7
+
8
+ ## Background
9
+
10
+ This is derrived work from `jjbohn/omniauth-openid-connect` which appears to be abandoned at this point. I have continued to merge PR's placed against that repo. But I have added enough of my own changes that it is diverged enough to re-release. @ThinkThroughMath actively utilizes this strategy and we will do our best to maintain it.
11
+
12
+ ### Whats different.
13
+
14
+ - Using Addressable 2.8 - At 2.9 `addressable` decided that the way that Rails 3 handles param[] items was too hard to handle and removed the feature. This breaking change within a semantic version makes using `addressable-3.0` difficult in existing applications. There is no impact on the auth strategy though.
15
+ - Better devise support be returning a default `name` options parameter
16
+ - Partial integration of google `nonce` requirement.
17
+ - Inclusing of aging PRs from the parent gem this replaces.
18
+
19
+ ## Installation
20
+
21
+ Add this line to your application's Gemfile:
22
+
23
+ gem 'omniauth-openid-connect'
24
+
25
+ And then execute:
26
+
27
+ $ bundle
28
+
29
+ Or install it yourself as:
30
+
31
+ $ gem install omniauth-openid-connect
32
+
33
+ ## Usage
34
+
35
+ Example configuration
36
+ ```ruby
37
+ config.omniauth :openid_connect, {
38
+ scope: [:openid, :email, :profile, :address],
39
+ response_type: :code,
40
+ client_options: {
41
+ port: 443,
42
+ scheme: "https",
43
+ host: "myprovider.com",
44
+ identifier: ENV["OP_CLIENT_ID"],
45
+ secret: ENV["OP_SECRET_KEY"],
46
+ redirect_uri: "http://myapp.com/users/auth/openid_connect/callback",
47
+ },
48
+ }
49
+ ```
50
+
51
+ Initialized for login is `/auth/OpenIDConnect`
52
+
53
+ Configuration details:
54
+ * `name` is an optional requirement as of `omniauth-1.2` but it does have an effect with dealing with devise and is the base for which devise uses to create routes identified with `devise_for`. The default is set to the expected camelization of `openid_connect`. If you need to override it you can pass the `name` parameter to the config hash. **Be aware** that what you set this to will be the provider for your devise routes.
55
+ * Although `response_type` is an available option, currently, only `:code`
56
+ is valid. There are plans to bring in implicit flow and hybrid flow at some
57
+ point, but it hasn't come up yet for me. Those flows aren't best practive for
58
+ server side web apps anyway and are designed more for native/mobile apps.
59
+
60
+ For the full low down on OpenID Connect, please check out
61
+ [the spec](http://openid.net/specs/openid-connect-core-1_0.html).
62
+
63
+ ## Contributing
64
+
65
+ 1. Fork it ( http://github.com/thinkthroughmath/omniauth-openid-connect/fork )
66
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
67
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
68
+ 4. Push to the branch (`git push origin my-new-feature`)
69
+ 5. Create new Pull Request
@@ -0,0 +1,10 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs << 'lib/omniauth-openid-connect'
6
+ t.test_files = FileList['test/lib/omniauth/**/*_test.rb']
7
+ t.verbose = true
8
+ end
9
+
10
+ task default: :test
@@ -0,0 +1 @@
1
+ require "omniauth/openid_connect"
@@ -0,0 +1,3 @@
1
+ require "omniauth/openid_connect/errors"
2
+ require "omniauth/openid_connect/version"
3
+ require "omniauth/strategies/openid_connect"
@@ -0,0 +1,6 @@
1
+ module OmniAuth
2
+ module OpenIDConnect
3
+ class Error < RuntimeError; end
4
+ class MissingCodeError < Error; end
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ module OmniAuth
2
+ module OpenIDConnect
3
+ VERSION = "0.2.0"
4
+ end
5
+ end
@@ -0,0 +1,117 @@
1
+ require 'addressable/uri'
2
+ require "net/http"
3
+ require 'omniauth'
4
+ require "openid_connect"
5
+
6
+ module OmniAuth
7
+ module Strategies
8
+ class OpenIDConnect
9
+ include OmniAuth::Strategy
10
+
11
+ option :client_options, {
12
+ identifier: nil,
13
+ secret: nil,
14
+ redirect_uri: nil,
15
+ scheme: "https",
16
+ host: nil,
17
+ port: 443,
18
+ authorization_endpoint: "/authorize",
19
+ token_endpoint: "/token",
20
+ userinfo_endpoint: "/userinfo"
21
+ }
22
+ option :name, 'openid_connect'
23
+ option :scope, [:openid]
24
+ option :response_type, "code"
25
+ option :state
26
+ option :response_mode
27
+ option :display, nil#, [:page, :popup, :touch, :wap]
28
+ option :prompt, nil#, [:none, :login, :consent, :select_account]
29
+ option :max_age
30
+ option :ui_locales
31
+ option :id_token_hint
32
+ option :login_hint
33
+ option :acr_values
34
+ option :client_auth_method
35
+
36
+ uid { user_info.sub }
37
+
38
+ info do
39
+ {
40
+ name: user_info.name,
41
+ email: user_info.email,
42
+ nickname: user_info.preferred_username,
43
+ first_name: user_info.given_name,
44
+ last_name: user_info.family_name,
45
+ gender: user_info.gender,
46
+ image: user_info.picture,
47
+ phone: user_info.phone_number,
48
+ urls: { website: user_info.website }
49
+ }
50
+ end
51
+
52
+ extra do
53
+ { raw_info: user_info.raw_attributes }
54
+ end
55
+
56
+ credentials do
57
+ { token: access_token.access_token }
58
+ end
59
+
60
+ def client
61
+ @client ||= ::OpenIDConnect::Client.new(client_options)
62
+ end
63
+
64
+ def request_phase
65
+ redirect authorize_uri
66
+ end
67
+
68
+ def callback_phase
69
+ if !request.params["code"]
70
+ return fail!(:missing_code, OmniAuth::OpenIDConnect::MissingCodeError.new(request.params["error"]))
71
+ end
72
+
73
+ client.redirect_uri = client_options.redirect_uri
74
+ client.authorization_code = authorization_code
75
+ access_token
76
+ super
77
+ end
78
+
79
+ def authorization_code
80
+ request.params["code"]
81
+ end
82
+
83
+ def authorize_uri
84
+ client.redirect_uri = client_options.redirect_uri
85
+ client.authorization_uri(
86
+ response_type: options.response_type,
87
+ scope: options.scope#,
88
+ #nonce: nonce,
89
+ )
90
+ end
91
+
92
+ private
93
+
94
+ def user_info
95
+ @user_info ||= access_token.userinfo!
96
+ end
97
+
98
+ def access_token
99
+ @access_token ||= client.access_token!(:client_auth_method => options.client_auth_method)
100
+ end
101
+
102
+ def client_options
103
+ options.client_options
104
+ end
105
+
106
+ #def nonce
107
+ # session[:nonce] = SecureRandom.hex(16)
108
+ #end
109
+
110
+ #def session
111
+ # @env.nil? ? {} : super
112
+ #end
113
+ end
114
+ end
115
+ end
116
+
117
+ OmniAuth.config.add_camelization 'openid_connect', 'OpenIDConnect'
@@ -0,0 +1,36 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'omniauth/openid_connect/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "omniauth-openid-reconnect"
8
+ spec.version = OmniAuth::OpenIDConnect::VERSION
9
+ spec.authors = ["Paul Scarrone","John Bohn"]
10
+ spec.email = ["paul.scarrone@gmail.com","jjbohn@gmail.com"]
11
+ spec.summary = %q{OpenID Connect Strategy MK2 for OmniAuth}
12
+ spec.description = %q{OpenID Connect Strategy MK2 for OmniAuth which is fully compliant with devise and rails and currently maintained. Derived from jjbohn's work but actively maintained}
13
+ spec.homepage = "https://github.com/thinkthroughmath/omniauth-openid-reconnect"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency 'activesupport', '>= 0'
22
+ spec.add_dependency 'omniauth', '~> 1.1'
23
+ spec.add_dependency 'openid_connect', '= 0.7.3'
24
+ spec.add_dependency 'addressable', '~> 2.2.8' # Because there is a breaking change in 2.2.9 with the wail rails param arrays are handled
25
+ spec.add_development_dependency 'bundler', '~> 1.5'
26
+ spec.add_development_dependency 'minitest', '~> 5.4'
27
+ spec.add_development_dependency 'mocha', '~> 1.1'
28
+ spec.add_development_dependency 'guard', '~> 2.6'
29
+ spec.add_development_dependency 'guard-minitest', '~> 2.3'
30
+ spec.add_development_dependency 'guard-bundler', '~> 2.0'
31
+ spec.add_development_dependency 'rake', '~> 10.3'
32
+ spec.add_development_dependency 'simplecov', '~> 0.9'
33
+ spec.add_development_dependency 'pry', '~> 0.10'
34
+ spec.add_development_dependency 'coveralls', '~> 0.7'
35
+ spec.add_development_dependency 'faker', '~> 1.4'
36
+ end
@@ -0,0 +1,7 @@
1
+ require_relative '../../../test_helper'
2
+
3
+ class OmniAuth::OpenIDConnect::VersionTest < MiniTest::Test
4
+ def test_version_defined
5
+ refute_nil OmniAuth::OpenIDConnect::VERSION
6
+ end
7
+ end
@@ -0,0 +1,89 @@
1
+ require_relative '../../../test_helper'
2
+
3
+ class OmniAuth::Strategies::OpenIDConnectTest < StrategyTestCase
4
+ def test_client_options_defaults
5
+ assert_equal "https", strategy.options.client_options.scheme
6
+ assert_equal 443, strategy.options.client_options.port
7
+ assert_equal "/authorize", strategy.options.client_options.authorization_endpoint
8
+ assert_equal "/token", strategy.options.client_options.token_endpoint
9
+ end
10
+
11
+ def test_request_phase
12
+ expected_redirect = /^https:\/\/example\.com\/authorize\?client_id=1234&nonce=[\w\d]{32}&response_type=code&scope=openid$/
13
+ strategy.options.client_options.host = "example.com"
14
+ strategy.expects(:redirect).with(regexp_matches(expected_redirect))
15
+ strategy.request_phase
16
+ end
17
+
18
+ def test_uid
19
+ assert_equal user_info.sub, strategy.uid
20
+ end
21
+
22
+ def test_callback_phase
23
+ code = SecureRandom.hex(16)
24
+ request.stubs(:params).returns({"code" => code})
25
+ request.stubs(:path_info).returns("")
26
+
27
+ strategy.unstub(:user_info)
28
+ access_token = stub('OpenIDConnect::AccessToken')
29
+ access_token.stubs(:access_token)
30
+ client.expects(:access_token!).returns(access_token)
31
+ access_token.expects(:userinfo!).returns(user_info)
32
+
33
+ strategy.call!({"rack.session" => {}})
34
+ strategy.callback_phase
35
+ end
36
+
37
+ def test_info
38
+ info = strategy.info
39
+ assert_equal user_info.name, info[:name]
40
+ assert_equal user_info.email, info[:email]
41
+ assert_equal user_info.preferred_username, info[:nickname]
42
+ assert_equal user_info.given_name, info[:first_name]
43
+ assert_equal user_info.family_name, info[:last_name]
44
+ assert_equal user_info.gender, info[:gender]
45
+ assert_equal user_info.picture, info[:image]
46
+ assert_equal user_info.phone_number, info[:phone]
47
+ assert_equal({ website: user_info.website }, info[:urls])
48
+ end
49
+
50
+ def test_extra
51
+ assert_equal({ raw_info: user_info.as_json }, strategy.extra)
52
+ end
53
+
54
+ def test_credentials
55
+ access_token = stub('OpenIDConnect::AccessToken')
56
+ access_token.stubs(:access_token).returns(SecureRandom.hex(16))
57
+ client.expects(:access_token!).returns(access_token)
58
+
59
+ assert_equal({ token: access_token.access_token }, strategy.credentials)
60
+ end
61
+
62
+ def test_failure_endpoint_redirect
63
+ OmniAuth.config.stubs(:failure_raise_out_environments).returns([])
64
+ strategy.stubs(:env).returns({})
65
+ request.stubs(:params).returns({"error" => "access denied"})
66
+
67
+ result = strategy.callback_phase
68
+
69
+ assert(result.is_a? Array)
70
+ assert(result[0] == 302, "Redirect")
71
+ assert(result[1]["Location"] =~ /\/auth\/failure/)
72
+ end
73
+
74
+ def test_option_client_auth_method
75
+ opts = strategy.options.client_options
76
+ opts[:host] = "foobar.com"
77
+ strategy.options.client_auth_method = :not_basic
78
+ success = Struct.new(:status).new(200)
79
+
80
+ HTTPClient.any_instance.stubs(:post).with(
81
+ "#{opts.scheme}://#{opts.host}:#{opts.port}#{opts.token_endpoint}",
82
+ {:grant_type => :client_credentials, :client_id => @identifier, :client_secret => @secret},
83
+ {}
84
+ ).returns(success)
85
+ OpenIDConnect::Client.any_instance.stubs(:handle_success_response).with(success).returns(true)
86
+
87
+ assert(strategy.send :access_token)
88
+ end
89
+ end
@@ -0,0 +1,65 @@
1
+ require 'simplecov'
2
+ SimpleCov.command_name 'test'
3
+ SimpleCov.start
4
+
5
+ require 'coveralls'
6
+ Coveralls.wear!
7
+
8
+ require 'minitest/autorun'
9
+ require 'mocha/mini_test'
10
+ require 'faker'
11
+ require_relative '../lib/omniauth-openid-connect'
12
+
13
+ OmniAuth.config.test_mode = true
14
+
15
+ class StrategyTestCase < MiniTest::Test
16
+ class DummyApp
17
+ def call(env); end
18
+ end
19
+
20
+ attr_accessor :identifier, :secret
21
+
22
+ def setup
23
+ @identifier = "1234"
24
+ @secret = "1234asdgat3"
25
+ end
26
+
27
+ def client
28
+ strategy.client
29
+ end
30
+
31
+ def user_info
32
+ @user_info ||= OpenIDConnect::ResponseObject::UserInfo::OpenID.new(
33
+ sub: SecureRandom.hex(16),
34
+ name: Faker::Name.name,
35
+ email: Faker::Internet.email,
36
+ nickname: Faker::Name.first_name,
37
+ preferred_username: Faker::Internet.user_name,
38
+ given_name: Faker::Name.first_name,
39
+ family_name: Faker::Name.last_name,
40
+ gender: 'female',
41
+ picture: Faker::Internet.url + ".png",
42
+ phone_number: Faker::PhoneNumber.phone_number,
43
+ website: Faker::Internet.url,
44
+ )
45
+ end
46
+
47
+ def request
48
+ @request ||= stub('Request').tap do |request|
49
+ request.stubs(:params).returns({})
50
+ request.stubs(:cookies).returns({})
51
+ request.stubs(:env).returns({})
52
+ request.stubs(:scheme).returns({})
53
+ request.stubs(:ssl?).returns(false)
54
+ end
55
+ end
56
+
57
+ def strategy
58
+ @strategy ||= OmniAuth::Strategies::OpenIDConnect.new(DummyApp.new).tap do |strategy|
59
+ strategy.options.client_options.identifier = @identifier
60
+ strategy.options.client_options.secret = @secret
61
+ strategy.stubs(:request).returns(request)
62
+ strategy.stubs(:user_info).returns(user_info)
63
+ end
64
+ end
65
+ end
metadata ADDED
@@ -0,0 +1,278 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: omniauth-openid-reconnect
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Paul Scarrone
8
+ - John Bohn
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-07-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - '>='
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: omniauth
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: '1.1'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ~>
40
+ - !ruby/object:Gem::Version
41
+ version: '1.1'
42
+ - !ruby/object:Gem::Dependency
43
+ name: openid_connect
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - '='
47
+ - !ruby/object:Gem::Version
48
+ version: 0.7.3
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '='
54
+ - !ruby/object:Gem::Version
55
+ version: 0.7.3
56
+ - !ruby/object:Gem::Dependency
57
+ name: addressable
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 2.2.8
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 2.2.8
70
+ - !ruby/object:Gem::Dependency
71
+ name: bundler
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: '1.5'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ~>
82
+ - !ruby/object:Gem::Version
83
+ version: '1.5'
84
+ - !ruby/object:Gem::Dependency
85
+ name: minitest
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ version: '5.4'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ~>
96
+ - !ruby/object:Gem::Version
97
+ version: '5.4'
98
+ - !ruby/object:Gem::Dependency
99
+ name: mocha
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ~>
103
+ - !ruby/object:Gem::Version
104
+ version: '1.1'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: '1.1'
112
+ - !ruby/object:Gem::Dependency
113
+ name: guard
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ version: '2.6'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: '2.6'
126
+ - !ruby/object:Gem::Dependency
127
+ name: guard-minitest
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ~>
131
+ - !ruby/object:Gem::Version
132
+ version: '2.3'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ~>
138
+ - !ruby/object:Gem::Version
139
+ version: '2.3'
140
+ - !ruby/object:Gem::Dependency
141
+ name: guard-bundler
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ~>
145
+ - !ruby/object:Gem::Version
146
+ version: '2.0'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ~>
152
+ - !ruby/object:Gem::Version
153
+ version: '2.0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: rake
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ~>
159
+ - !ruby/object:Gem::Version
160
+ version: '10.3'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ~>
166
+ - !ruby/object:Gem::Version
167
+ version: '10.3'
168
+ - !ruby/object:Gem::Dependency
169
+ name: simplecov
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ~>
173
+ - !ruby/object:Gem::Version
174
+ version: '0.9'
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ~>
180
+ - !ruby/object:Gem::Version
181
+ version: '0.9'
182
+ - !ruby/object:Gem::Dependency
183
+ name: pry
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ~>
187
+ - !ruby/object:Gem::Version
188
+ version: '0.10'
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ~>
194
+ - !ruby/object:Gem::Version
195
+ version: '0.10'
196
+ - !ruby/object:Gem::Dependency
197
+ name: coveralls
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ~>
201
+ - !ruby/object:Gem::Version
202
+ version: '0.7'
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ~>
208
+ - !ruby/object:Gem::Version
209
+ version: '0.7'
210
+ - !ruby/object:Gem::Dependency
211
+ name: faker
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ~>
215
+ - !ruby/object:Gem::Version
216
+ version: '1.4'
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ~>
222
+ - !ruby/object:Gem::Version
223
+ version: '1.4'
224
+ description: OpenID Connect Strategy MK2 for OmniAuth which is fully compliant with
225
+ devise and rails and currently maintained. Derived from jjbohn's work but actively
226
+ maintained
227
+ email:
228
+ - paul.scarrone@gmail.com
229
+ - jjbohn@gmail.com
230
+ executables: []
231
+ extensions: []
232
+ extra_rdoc_files: []
233
+ files:
234
+ - .gitignore
235
+ - .travis.yml
236
+ - Gemfile
237
+ - Guardfile
238
+ - LICENSE.txt
239
+ - README.md
240
+ - Rakefile
241
+ - lib/omniauth-openid-reconnect.rb
242
+ - lib/omniauth/openid_connect.rb
243
+ - lib/omniauth/openid_connect/errors.rb
244
+ - lib/omniauth/openid_connect/version.rb
245
+ - lib/omniauth/strategies/openid_connect.rb
246
+ - omniauth-openid-reconnect.gemspec
247
+ - test/lib/omniauth/openid_connect/version_test.rb
248
+ - test/lib/omniauth/strategies/openid_connect_test.rb
249
+ - test/test_helper.rb
250
+ homepage: https://github.com/thinkthroughmath/omniauth-openid-reconnect
251
+ licenses:
252
+ - MIT
253
+ metadata: {}
254
+ post_install_message:
255
+ rdoc_options: []
256
+ require_paths:
257
+ - lib
258
+ required_ruby_version: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - '>='
261
+ - !ruby/object:Gem::Version
262
+ version: '0'
263
+ required_rubygems_version: !ruby/object:Gem::Requirement
264
+ requirements:
265
+ - - '>='
266
+ - !ruby/object:Gem::Version
267
+ version: '0'
268
+ requirements: []
269
+ rubyforge_project:
270
+ rubygems_version: 2.2.2
271
+ signing_key:
272
+ specification_version: 4
273
+ summary: OpenID Connect Strategy MK2 for OmniAuth
274
+ test_files:
275
+ - test/lib/omniauth/openid_connect/version_test.rb
276
+ - test/lib/omniauth/strategies/openid_connect_test.rb
277
+ - test/test_helper.rb
278
+ has_rdoc: