omniauth-auth0 2.4.2 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +27 -5
- data/.github/CODEOWNERS +1 -1
- data/.github/ISSUE_TEMPLATE/config.yml +8 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +39 -0
- data/.github/ISSUE_TEMPLATE/report_a_bug.md +55 -0
- data/.gitignore +2 -0
- data/CHANGELOG.md +14 -0
- data/Gemfile +1 -1
- data/README.md +2 -1
- data/lib/omniauth-auth0/version.rb +1 -1
- data/lib/omniauth/auth0/jwt_validator.rb +28 -14
- data/lib/omniauth/strategies/auth0.rb +16 -6
- data/omniauth-auth0.gemspec +3 -2
- data/spec/omniauth/auth0/jwt_validator_spec.rb +16 -6
- data/spec/omniauth/strategies/auth0_spec.rb +22 -17
- metadata +15 -14
- data/.github/ISSUE_TEMPLATE.md +0 -39
- data/Gemfile.lock +0 -172
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 530b0c2ecfb26938944778585c034f1281b46f0c7e920f40b9d58c72fb892c52
|
4
|
+
data.tar.gz: 0ca3365ce632a95272eabb1b1db1ed7fcc6faacdbdc1acaa3fa9889329886cef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1ad9ad998942bd4b081c8873352bf54d0bc5900203baee151535324533b28954e7ab3e990ada83436189bd22a17b24d3a31d7552d45570fe356d00bfbb85fd6
|
7
|
+
data.tar.gz: 60954e800d0a30ea948590cb89b90038185dfa7466bf301ef4e7b782a3b327265921cccf6ddbd4275789046a12c0e4d0956ce4a73ab35d1ea20e633432430e45
|
data/.circleci/config.yml
CHANGED
@@ -1,17 +1,38 @@
|
|
1
1
|
version: 2.1
|
2
|
+
matrix_rubyversions: &matrix_rubyversions
|
3
|
+
matrix:
|
4
|
+
parameters:
|
5
|
+
rubyversion: ["2.5", "2.6", "2.7", "3.0"]
|
6
|
+
# Default version of ruby to use for lint and publishing
|
7
|
+
default_rubyversion: &default_rubyversion "2.7"
|
8
|
+
|
9
|
+
executors:
|
10
|
+
ruby:
|
11
|
+
parameters:
|
12
|
+
rubyversion:
|
13
|
+
type: string
|
14
|
+
default: *default_rubyversion
|
15
|
+
docker:
|
16
|
+
- image: circleci/ruby:<< parameters.rubyversion >>
|
17
|
+
|
2
18
|
jobs:
|
3
19
|
run-tests:
|
4
|
-
|
5
|
-
|
20
|
+
parameters:
|
21
|
+
rubyversion:
|
22
|
+
type: string
|
23
|
+
default: *default_rubyversion
|
24
|
+
executor:
|
25
|
+
name: ruby
|
26
|
+
rubyversion: "<< parameters.rubyversion >>"
|
6
27
|
steps:
|
7
28
|
- checkout
|
8
29
|
- restore_cache:
|
9
30
|
keys:
|
10
|
-
- gems-v2-{{ checksum "Gemfile
|
31
|
+
- gems-v2-{{ checksum "Gemfile" }}
|
11
32
|
- gems-v2-
|
12
33
|
- run: bundle check || bundle install
|
13
34
|
- save_cache:
|
14
|
-
key: gems-v2--{{ checksum "Gemfile
|
35
|
+
key: gems-v2--{{ checksum "Gemfile" }}
|
15
36
|
paths:
|
16
37
|
- vendor/bundle
|
17
38
|
- run: bundle exec rake spec
|
@@ -19,4 +40,5 @@ jobs:
|
|
19
40
|
workflows:
|
20
41
|
tests:
|
21
42
|
jobs:
|
22
|
-
- run-tests
|
43
|
+
- run-tests:
|
44
|
+
<<: *matrix_rubyversions
|
data/.github/CODEOWNERS
CHANGED
@@ -1 +1 @@
|
|
1
|
-
* @auth0/dx-sdks-
|
1
|
+
* @auth0/dx-sdks-engineer
|
@@ -0,0 +1,8 @@
|
|
1
|
+
blank_issues_enabled: false
|
2
|
+
contact_links:
|
3
|
+
- name: Auth0 Community
|
4
|
+
url: https://community.auth0.com/c/sdks/5
|
5
|
+
about: Discuss this SDK in the Auth0 Community forums
|
6
|
+
- name: Library Documentation
|
7
|
+
url: https://github.com/auth0/omniauth-auth0#documentation
|
8
|
+
about: Read the library docs on Auth0.com
|
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
name: Feature request
|
3
|
+
about: Suggest an idea or a feature for this project
|
4
|
+
title: ''
|
5
|
+
labels: feature request
|
6
|
+
assignees: ''
|
7
|
+
---
|
8
|
+
|
9
|
+
<!--
|
10
|
+
**Please do not report security vulnerabilities here**. The Responsible Disclosure Program (https://auth0.com/whitehat) details the procedure for disclosing security issues.
|
11
|
+
|
12
|
+
Thank you in advance for helping us to improve this library! Your attention to detail here is greatly appreciated and will help us respond as quickly as possible. For general support or usage questions, use the Auth0 Community (https://community.auth0.com/) or Auth0 Support (https://support.auth0.com/). Finally, to avoid duplicates, please search existing Issues before submitting one here.
|
13
|
+
|
14
|
+
By submitting an Issue to this repository, you agree to the terms within the Auth0 Code of Conduct (https://github.com/auth0/open-source-template/blob/master/CODE-OF-CONDUCT.md).
|
15
|
+
-->
|
16
|
+
|
17
|
+
### Describe the problem you'd like to have solved
|
18
|
+
|
19
|
+
<!--
|
20
|
+
> A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
21
|
+
-->
|
22
|
+
|
23
|
+
### Describe the ideal solution
|
24
|
+
|
25
|
+
<!--
|
26
|
+
> A clear and concise description of what you want to happen.
|
27
|
+
-->
|
28
|
+
|
29
|
+
## Alternatives and current work-arounds
|
30
|
+
|
31
|
+
<!--
|
32
|
+
> A clear and concise description of any alternatives you've considered or any work-arounds that are currently in place.
|
33
|
+
-->
|
34
|
+
|
35
|
+
### Additional information, if any
|
36
|
+
|
37
|
+
<!--
|
38
|
+
> Add any other context or screenshots about the feature request here.
|
39
|
+
-->
|
@@ -0,0 +1,55 @@
|
|
1
|
+
---
|
2
|
+
name: Report a bug
|
3
|
+
about: Have you found a bug or issue? Create a bug report for this SDK
|
4
|
+
title: ''
|
5
|
+
labels: bug report
|
6
|
+
assignees: ''
|
7
|
+
---
|
8
|
+
|
9
|
+
<!--
|
10
|
+
**Please do not report security vulnerabilities here**. The Responsible Disclosure Program (https://auth0.com/whitehat) details the procedure for disclosing security issues.
|
11
|
+
|
12
|
+
Thank you in advance for helping us to improve this library! Please read through the template below and answer all relevant questions. Your additional work here is greatly appreciated and will help us respond as quickly as possible. For general support or usage questions, use the Auth0 Community (https://community.auth0.com/) or Auth0 Support (https://support.auth0.com/). Finally, to avoid duplicates, please search existing Issues before submitting one here.
|
13
|
+
|
14
|
+
By submitting an Issue to this repository, you agree to the terms within the Auth0 Code of Conduct (https://github.com/auth0/open-source-template/blob/master/CODE-OF-CONDUCT.md).
|
15
|
+
-->
|
16
|
+
|
17
|
+
### Describe the problem
|
18
|
+
|
19
|
+
<!--
|
20
|
+
> Provide a clear and concise description of the issue
|
21
|
+
-->
|
22
|
+
|
23
|
+
### What was the expected behavior?
|
24
|
+
|
25
|
+
<!--
|
26
|
+
> Tell us about the behavior you expected to see
|
27
|
+
-->
|
28
|
+
|
29
|
+
### Reproduction
|
30
|
+
<!--
|
31
|
+
> Detail the steps taken to reproduce this error, and whether this issue can be reproduced consistently or if it is intermittent.
|
32
|
+
> **Note**: If clear, reproducable steps or the smallest sample app demonstrating misbehavior cannot be provided, we may not be able to follow up on this bug report.
|
33
|
+
|
34
|
+
> Where possible, please include:
|
35
|
+
>
|
36
|
+
> - The smallest possible sample app that reproduces the undesirable behavior
|
37
|
+
> - Log files (redact/remove sensitive information)
|
38
|
+
> - Application settings (redact/remove sensitive information)
|
39
|
+
> - Screenshots
|
40
|
+
-->
|
41
|
+
|
42
|
+
- Step 1..
|
43
|
+
- Step 2..
|
44
|
+
- ...
|
45
|
+
|
46
|
+
### Environment
|
47
|
+
|
48
|
+
<!--
|
49
|
+
> Please provide the following:
|
50
|
+
-->
|
51
|
+
|
52
|
+
- **Version of this library used:**
|
53
|
+
- **Which framework are you using, if applicable:**
|
54
|
+
- **Other modules/plugins/libraries that might be involved:**
|
55
|
+
- **Any other relevant information you think would be useful:**
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [v2.5.0](https://github.com/auth0/omniauth-auth0/tree/v2.5.0) (2021-01-21)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/auth0/omniauth-auth0/compare/v2.4.2...v2.5.0)
|
6
|
+
|
7
|
+
**Added**
|
8
|
+
- Parsing claims from the id_token [\#120](https://github.com/auth0/omniauth-auth0/pull/120) ([davidpatrick](https://github.com/davidpatrick))
|
9
|
+
|
10
|
+
**Changed**
|
11
|
+
- Setup build matrix in CI [\#116](https://github.com/auth0/omniauth-auth0/pull/116) ([dmathieu](https://github.com/dmathieu))
|
12
|
+
|
13
|
+
**Fixed**
|
14
|
+
- Fixes params passed to authorize [\#119](https://github.com/auth0/omniauth-auth0/pull/119) ([davidpatrick](https://github.com/davidpatrick))
|
15
|
+
|
16
|
+
|
3
17
|
## [v2.4.2](https://github.com/auth0/omniauth-auth0/tree/v2.4.2) (2021-01-19)
|
4
18
|
|
5
19
|
[Full Changelog](https://github.com/auth0/omniauth-auth0/compare/v2.4.1...v2.4.2)
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -25,6 +25,7 @@ An [OmniAuth](https://github.com/intridea/omniauth) strategy for authenticating
|
|
25
25
|
|
26
26
|
- [Ruby on Rails Quickstart](https://auth0.com/docs/quickstart/webapp/rails)
|
27
27
|
- [Sample projects](https://github.com/auth0-samples/auth0-rubyonrails-sample)
|
28
|
+
- [API Reference](https://www.rubydoc.info/gems/omniauth-auth0)
|
28
29
|
|
29
30
|
## Installation
|
30
31
|
|
@@ -169,4 +170,4 @@ Auth0 helps you to easily:
|
|
169
170
|
The OmniAuth Auth0 strategy is licensed under MIT - [LICENSE](LICENSE)
|
170
171
|
|
171
172
|
|
172
|
-
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fauth0%2Fomniauth-auth0.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fauth0%2Fomniauth-auth0?ref=badge_large)
|
173
|
+
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fauth0%2Fomniauth-auth0.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fauth0%2Fomniauth-auth0?ref=badge_large)
|
@@ -29,29 +29,33 @@ module OmniAuth
|
|
29
29
|
end
|
30
30
|
|
31
31
|
# Verify a token's signature. Only tokens signed with the RS256 or HS256 signatures are supported.
|
32
|
+
# Deprecated: Please use `decode` instead
|
32
33
|
# @return array - The token's key and signing algorithm
|
33
34
|
def verify_signature(jwt)
|
34
35
|
head = token_head(jwt)
|
35
|
-
|
36
|
-
# Make sure the algorithm is supported and get the decode key.
|
37
|
-
if head[:alg] == 'RS256'
|
38
|
-
key, alg = [rs256_decode_key(head[:kid]), head[:alg]]
|
39
|
-
elsif head[:alg] == 'HS256'
|
40
|
-
key, alg = [@client_secret, head[:alg]]
|
41
|
-
else
|
42
|
-
raise OmniAuth::Auth0::TokenValidationError.new("Signature algorithm of #{head[:alg]} is not supported. Expected the ID token to be signed with RS256 or HS256")
|
43
|
-
end
|
36
|
+
key, alg = extract_key(head)
|
44
37
|
|
45
38
|
# Call decode to verify the signature
|
46
39
|
JWT.decode(jwt, key, true, decode_opts(alg))
|
47
|
-
|
48
40
|
return key, alg
|
49
41
|
end
|
50
42
|
|
43
|
+
# Decodes a JWT and verifies it's signature. Only tokens signed with the RS256 or HS256 signatures are supported.
|
44
|
+
# @param jwt string - JWT to verify.
|
45
|
+
# @return hash - The decoded token, if there were no exceptions.
|
46
|
+
# @see https://github.com/jwt/ruby-jwt
|
47
|
+
def decode(jwt)
|
48
|
+
head = token_head(jwt)
|
49
|
+
key, alg = extract_key(head)
|
50
|
+
|
51
|
+
# Call decode to verify the signature
|
52
|
+
JWT.decode(jwt, key, true, decode_opts(alg))
|
53
|
+
end
|
54
|
+
|
51
55
|
# Verify a JWT.
|
52
56
|
# @param jwt string - JWT to verify.
|
53
57
|
# @param authorize_params hash - Authorization params to verify on the JWT
|
54
|
-
# @return hash - The verified token, if there were no exceptions.
|
58
|
+
# @return hash - The verified token payload, if there were no exceptions.
|
55
59
|
def verify(jwt, authorize_params = {})
|
56
60
|
if !jwt
|
57
61
|
raise OmniAuth::Auth0::TokenValidationError.new('ID token is required but missing')
|
@@ -62,8 +66,7 @@ module OmniAuth
|
|
62
66
|
raise OmniAuth::Auth0::TokenValidationError.new('ID token could not be decoded')
|
63
67
|
end
|
64
68
|
|
65
|
-
|
66
|
-
id_token, header = JWT.decode(jwt, key, false)
|
69
|
+
id_token, header = decode(jwt)
|
67
70
|
verify_claims(id_token, authorize_params)
|
68
71
|
|
69
72
|
return id_token
|
@@ -116,6 +119,16 @@ module OmniAuth
|
|
116
119
|
}
|
117
120
|
end
|
118
121
|
|
122
|
+
def extract_key(head)
|
123
|
+
if head[:alg] == 'RS256'
|
124
|
+
key, alg = [rs256_decode_key(head[:kid]), head[:alg]]
|
125
|
+
elsif head[:alg] == 'HS256'
|
126
|
+
key, alg = [@client_secret, head[:alg]]
|
127
|
+
else
|
128
|
+
raise OmniAuth::Auth0::TokenValidationError.new("Signature algorithm of #{head[:alg]} is not supported. Expected the ID token to be signed with RS256 or HS256")
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
119
132
|
def rs256_decode_key(kid)
|
120
133
|
jwks_x5c = jwks_key(:x5c, kid)
|
121
134
|
|
@@ -153,7 +166,8 @@ module OmniAuth
|
|
153
166
|
def uri_string(uri)
|
154
167
|
temp_domain = URI(uri)
|
155
168
|
temp_domain = URI("https://#{uri}") unless temp_domain.scheme
|
156
|
-
|
169
|
+
temp_domain = temp_domain.to_s
|
170
|
+
temp_domain.end_with?('/') ? temp_domain : "#{temp_domain}/"
|
157
171
|
end
|
158
172
|
|
159
173
|
def verify_claims(id_token, authorize_params)
|
@@ -57,8 +57,7 @@ module OmniAuth
|
|
57
57
|
auth_scope = session_authorize_params[:scope]
|
58
58
|
if auth_scope.respond_to?(:include?) && auth_scope.include?('openid')
|
59
59
|
# Make sure the ID token can be verified and decoded.
|
60
|
-
|
61
|
-
auth0_jwt.verify(credentials['id_token'], session_authorize_params)
|
60
|
+
jwt_validator.verify(credentials['id_token'], session_authorize_params)
|
62
61
|
end
|
63
62
|
|
64
63
|
credentials
|
@@ -85,9 +84,8 @@ module OmniAuth
|
|
85
84
|
# Define the parameters used for the /authorize endpoint
|
86
85
|
def authorize_params
|
87
86
|
params = super
|
88
|
-
parsed_query = Rack::Utils.parse_query(request.query_string)
|
89
87
|
%w[connection connection_scope prompt screen_hint].each do |key|
|
90
|
-
params[key] =
|
88
|
+
params[key] = request.params[key] if request.params.key?(key)
|
91
89
|
end
|
92
90
|
|
93
91
|
# Generate nonce
|
@@ -130,11 +128,23 @@ module OmniAuth
|
|
130
128
|
end
|
131
129
|
|
132
130
|
private
|
131
|
+
def jwt_validator
|
132
|
+
@jwt_validator ||= OmniAuth::Auth0::JWTValidator.new(options)
|
133
|
+
end
|
133
134
|
|
134
135
|
# Parse the raw user info.
|
135
136
|
def raw_info
|
136
|
-
|
137
|
-
|
137
|
+
return @raw_info if @raw_info
|
138
|
+
|
139
|
+
if access_token["id_token"]
|
140
|
+
claims, header = jwt_validator.decode(access_token["id_token"])
|
141
|
+
@raw_info = claims
|
142
|
+
else
|
143
|
+
userinfo_url = options.client_options.userinfo_url
|
144
|
+
@raw_info = access_token.get(userinfo_url).parsed
|
145
|
+
end
|
146
|
+
|
147
|
+
return @raw_info
|
138
148
|
end
|
139
149
|
|
140
150
|
# Check if the options include a client_id
|
data/omniauth-auth0.gemspec
CHANGED
@@ -21,9 +21,10 @@ omniauth-auth0 is the OmniAuth strategy for Auth0.
|
|
21
21
|
s.executables = `git ls-files -- bin/*`.split('\n').map{ |f| File.basename(f) }
|
22
22
|
s.require_paths = ['lib']
|
23
23
|
|
24
|
-
s.add_runtime_dependency 'omniauth-oauth2', '~> 1.5'
|
25
24
|
s.add_runtime_dependency 'omniauth', '~> 1.9'
|
26
|
-
s.
|
25
|
+
s.add_runtime_dependency 'omniauth-oauth2', '~> 1.5'
|
26
|
+
|
27
|
+
s.add_development_dependency 'bundler'
|
27
28
|
|
28
29
|
s.license = 'MIT'
|
29
30
|
end
|
@@ -133,16 +133,26 @@ describe OmniAuth::Auth0::JWTValidator do
|
|
133
133
|
end
|
134
134
|
|
135
135
|
context 'different from domain' do
|
136
|
-
|
137
|
-
make_jwt_validator(opt_issuer:
|
136
|
+
shared_examples_for 'has correct issuer and domain' do
|
137
|
+
let(:jwt_validator) { make_jwt_validator(opt_issuer: opt_issuer) }
|
138
|
+
|
139
|
+
it 'should have the correct issuer' do
|
140
|
+
expect(jwt_validator.issuer).to eq('https://different.auth0.com/')
|
141
|
+
end
|
142
|
+
|
143
|
+
it 'should have the correct domain' do
|
144
|
+
expect(jwt_validator.domain).to eq('https://samples.auth0.com/')
|
145
|
+
end
|
138
146
|
end
|
139
147
|
|
140
|
-
|
141
|
-
|
148
|
+
context 'without protocol and trailing slash' do
|
149
|
+
let(:opt_issuer) { 'different.auth0.com' }
|
150
|
+
it_behaves_like 'has correct issuer and domain'
|
142
151
|
end
|
143
152
|
|
144
|
-
|
145
|
-
|
153
|
+
context 'with protocol and trailing slash' do
|
154
|
+
let(:opt_issuer) { 'https://different.auth0.com/' }
|
155
|
+
it_behaves_like 'has correct issuer and domain'
|
146
156
|
end
|
147
157
|
end
|
148
158
|
end
|
@@ -26,7 +26,12 @@ describe OmniAuth::Strategies::Auth0 do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
describe 'client_options' do
|
29
|
-
let(:subject) {
|
29
|
+
let(:subject) { OmniAuth::Strategies::Auth0.new(
|
30
|
+
application,
|
31
|
+
client_id,
|
32
|
+
client_secret,
|
33
|
+
domain_url
|
34
|
+
).client }
|
30
35
|
|
31
36
|
context 'domain with https' do
|
32
37
|
let(:domain_url) { 'https://samples.auth0.com' }
|
@@ -161,12 +166,17 @@ describe OmniAuth::Strategies::Auth0 do
|
|
161
166
|
payload['sub'] = user_id
|
162
167
|
payload['iss'] = "#{domain_url}/"
|
163
168
|
payload['aud'] = client_id
|
169
|
+
payload['name'] = name
|
170
|
+
payload['nickname'] = nickname
|
171
|
+
payload['picture'] = picture
|
172
|
+
payload['email'] = email
|
173
|
+
payload['email_verified'] = email_verified
|
174
|
+
|
164
175
|
JWT.encode payload, client_secret, 'HS256'
|
165
176
|
end
|
166
177
|
|
167
178
|
let(:oauth_response) do
|
168
179
|
{
|
169
|
-
id_token: id_token,
|
170
180
|
access_token: access_token,
|
171
181
|
expires_in: expires_in,
|
172
182
|
token_type: token_type
|
@@ -182,17 +192,7 @@ describe OmniAuth::Strategies::Auth0 do
|
|
182
192
|
}
|
183
193
|
end
|
184
194
|
|
185
|
-
let(:basic_user_info) { { sub
|
186
|
-
let(:oidc_user_info) do
|
187
|
-
{
|
188
|
-
sub: user_id,
|
189
|
-
name: name,
|
190
|
-
nickname: nickname,
|
191
|
-
email: email,
|
192
|
-
picture: picture,
|
193
|
-
email_verified: email_verified
|
194
|
-
}
|
195
|
-
end
|
195
|
+
let(:basic_user_info) { { "sub" => user_id, "name" => name } }
|
196
196
|
|
197
197
|
def stub_auth(body)
|
198
198
|
stub_request(:post, 'https://samples.auth0.com/oauth/token')
|
@@ -220,7 +220,9 @@ describe OmniAuth::Strategies::Auth0 do
|
|
220
220
|
WebMock.reset!
|
221
221
|
end
|
222
222
|
|
223
|
-
let(:subject)
|
223
|
+
let(:subject) do
|
224
|
+
MultiJson.decode(last_response.body)
|
225
|
+
end
|
224
226
|
|
225
227
|
context 'basic oauth' do
|
226
228
|
before do
|
@@ -239,10 +241,14 @@ describe OmniAuth::Strategies::Auth0 do
|
|
239
241
|
expect(subject['credentials']['expires_at']).to_not be_nil
|
240
242
|
end
|
241
243
|
|
242
|
-
it 'has basic values'
|
244
|
+
it 'has basic values' do
|
243
245
|
expect(subject['provider']).to eq('auth0')
|
244
246
|
expect(subject['uid']).to eq(user_id)
|
245
|
-
expect(subject['info']['name']).to eq(
|
247
|
+
expect(subject['info']['name']).to eq(name)
|
248
|
+
end
|
249
|
+
|
250
|
+
it 'should use the user info endpoint' do
|
251
|
+
expect(subject['extra']['raw_info']).to eq(basic_user_info)
|
246
252
|
end
|
247
253
|
end
|
248
254
|
|
@@ -268,7 +274,6 @@ describe OmniAuth::Strategies::Auth0 do
|
|
268
274
|
context 'oidc' do
|
269
275
|
before do
|
270
276
|
stub_auth(oidc_response)
|
271
|
-
stub_userinfo(oidc_user_info)
|
272
277
|
trigger_callback
|
273
278
|
end
|
274
279
|
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-auth0
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Auth0
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01-
|
11
|
+
date: 2021-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: omniauth
|
14
|
+
name: omniauth
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.9'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.9'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name: omniauth
|
28
|
+
name: omniauth-oauth2
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1.
|
33
|
+
version: '1.5'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1.
|
40
|
+
version: '1.5'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
description: |
|
56
56
|
Auth0 is an authentication broker that supports social identity providers as well as enterprise identity providers such as Active Directory, LDAP, Google Apps, Salesforce.
|
57
57
|
|
@@ -67,7 +67,9 @@ files:
|
|
67
67
|
- ".circleci/config.yml"
|
68
68
|
- ".gemrelease"
|
69
69
|
- ".github/CODEOWNERS"
|
70
|
-
- ".github/ISSUE_TEMPLATE.
|
70
|
+
- ".github/ISSUE_TEMPLATE/config.yml"
|
71
|
+
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
72
|
+
- ".github/ISSUE_TEMPLATE/report_a_bug.md"
|
71
73
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
72
74
|
- ".github/stale.yml"
|
73
75
|
- ".gitignore"
|
@@ -78,7 +80,6 @@ files:
|
|
78
80
|
- CODE_OF_CONDUCT.md
|
79
81
|
- CONTRIBUTING.md
|
80
82
|
- Gemfile
|
81
|
-
- Gemfile.lock
|
82
83
|
- Guardfile
|
83
84
|
- LICENSE
|
84
85
|
- README.md
|
data/.github/ISSUE_TEMPLATE.md
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
In order to efficiently and accurately address your issue or feature request, please read through the template below and answer all relevant questions. Your additional work here is greatly appreciated and will help us respond as quickly as possible. Please delete any sections or questions below that do not pertain to this request.
|
2
|
-
|
3
|
-
For general support or usage questions, please use the [Auth0 Community](https://community.auth0.com/) or [Auth0 Support](https://support.auth0.com.).
|
4
|
-
|
5
|
-
### Description
|
6
|
-
|
7
|
-
Description of the bug or feature request and why it's a problem. Consider including:
|
8
|
-
|
9
|
-
- The use case or overall problem you're trying to solve
|
10
|
-
- Information about when the problem started
|
11
|
-
|
12
|
-
### Prerequisites
|
13
|
-
|
14
|
-
* [ ] I have read the [Auth0 contribution guidelines](https://github.com/auth0/open-source-template/blob/master/GENERAL-CONTRIBUTING.md)
|
15
|
-
* [ ] I have read the [Auth0 Code of Conduct](https://github.com/auth0/open-source-template/blob/master/CODE-OF-CONDUCT.md)
|
16
|
-
* [ ] Did you check the [documentation](https://auth0.com/docs/quickstart/webapp/rails)?
|
17
|
-
* [ ] Did you check [Auth0 Community](https://community.auth0.com/tags/rails)?
|
18
|
-
* [ ] Are you reporting this to the correct repository? This strategy relies on [OmniAuth](https://github.com/omniauth/omniauth) and the [OmniAuth OAuth2](https://github.com/omniauth/omniauth-oauth2) strategy.
|
19
|
-
* [ ] Are there any related or duplicate [Issues](https://github.com/auth0/omniauth-auth0/issues) or [PRs](https://github.com/auth0/omniauth-auth0/pulls) for this issue?
|
20
|
-
|
21
|
-
### Environment
|
22
|
-
|
23
|
-
Please provide the following:
|
24
|
-
|
25
|
-
* OmniAuth-Auth0 version:
|
26
|
-
* Ruby version:
|
27
|
-
* Rails veresion:
|
28
|
-
* Browser version, if applicable:
|
29
|
-
* Additional gems that might be affecting your instance:
|
30
|
-
|
31
|
-
### Reproduction
|
32
|
-
|
33
|
-
Detail the steps taken to reproduce this error and note if this issue can be reproduced consistently or if it is intermittent.
|
34
|
-
|
35
|
-
Please include:
|
36
|
-
|
37
|
-
- Log files (redact/remove sensitive information)
|
38
|
-
- Application settings (redact/remove sensitive information)
|
39
|
-
- Screenshots, if helpful
|
data/Gemfile.lock
DELETED
@@ -1,172 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
omniauth-auth0 (2.4.2)
|
5
|
-
omniauth (~> 1.9)
|
6
|
-
omniauth-oauth2 (~> 1.5)
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: https://rubygems.org/
|
10
|
-
specs:
|
11
|
-
addressable (2.7.0)
|
12
|
-
public_suffix (>= 2.0.2, < 5.0)
|
13
|
-
ast (2.4.1)
|
14
|
-
codecov (0.3.0)
|
15
|
-
simplecov (>= 0.15, < 0.22)
|
16
|
-
coderay (1.1.3)
|
17
|
-
crack (0.4.5)
|
18
|
-
rexml
|
19
|
-
daemons (1.3.1)
|
20
|
-
diff-lcs (1.4.4)
|
21
|
-
docile (1.3.5)
|
22
|
-
dotenv (2.7.6)
|
23
|
-
eventmachine (1.2.7)
|
24
|
-
faraday (1.3.0)
|
25
|
-
faraday-net_http (~> 1.0)
|
26
|
-
multipart-post (>= 1.2, < 3)
|
27
|
-
ruby2_keywords
|
28
|
-
faraday-net_http (1.0.1)
|
29
|
-
ffi (1.14.2)
|
30
|
-
formatador (0.2.5)
|
31
|
-
gem-release (2.2.0)
|
32
|
-
guard (2.16.2)
|
33
|
-
formatador (>= 0.2.4)
|
34
|
-
listen (>= 2.7, < 4.0)
|
35
|
-
lumberjack (>= 1.0.12, < 2.0)
|
36
|
-
nenv (~> 0.1)
|
37
|
-
notiffany (~> 0.0)
|
38
|
-
pry (>= 0.9.12)
|
39
|
-
shellany (~> 0.0)
|
40
|
-
thor (>= 0.18.1)
|
41
|
-
guard-compat (1.2.1)
|
42
|
-
guard-rspec (4.7.3)
|
43
|
-
guard (~> 2.1)
|
44
|
-
guard-compat (~> 1.1)
|
45
|
-
rspec (>= 2.99.0, < 4.0)
|
46
|
-
hashdiff (1.0.1)
|
47
|
-
hashie (4.1.0)
|
48
|
-
jwt (2.2.2)
|
49
|
-
listen (3.1.5)
|
50
|
-
rb-fsevent (~> 0.9, >= 0.9.4)
|
51
|
-
rb-inotify (~> 0.9, >= 0.9.7)
|
52
|
-
ruby_dep (~> 1.2)
|
53
|
-
lumberjack (1.2.8)
|
54
|
-
method_source (1.0.0)
|
55
|
-
multi_json (1.15.0)
|
56
|
-
multi_xml (0.6.0)
|
57
|
-
multipart-post (2.1.1)
|
58
|
-
mustermann (1.1.1)
|
59
|
-
ruby2_keywords (~> 0.0.1)
|
60
|
-
nenv (0.3.0)
|
61
|
-
notiffany (0.1.3)
|
62
|
-
nenv (~> 0.1)
|
63
|
-
shellany (~> 0.0)
|
64
|
-
oauth2 (1.4.4)
|
65
|
-
faraday (>= 0.8, < 2.0)
|
66
|
-
jwt (>= 1.0, < 3.0)
|
67
|
-
multi_json (~> 1.3)
|
68
|
-
multi_xml (~> 0.5)
|
69
|
-
rack (>= 1.2, < 3)
|
70
|
-
omniauth (1.9.1)
|
71
|
-
hashie (>= 3.4.6)
|
72
|
-
rack (>= 1.6.2, < 3)
|
73
|
-
omniauth-oauth2 (1.7.1)
|
74
|
-
oauth2 (~> 1.4)
|
75
|
-
omniauth (>= 1.9, < 3)
|
76
|
-
parallel (1.20.1)
|
77
|
-
parser (3.0.0.0)
|
78
|
-
ast (~> 2.4.1)
|
79
|
-
pry (0.13.1)
|
80
|
-
coderay (~> 1.1)
|
81
|
-
method_source (~> 1.0)
|
82
|
-
public_suffix (4.0.6)
|
83
|
-
rack (2.2.3)
|
84
|
-
rack-protection (2.1.0)
|
85
|
-
rack
|
86
|
-
rack-test (1.1.0)
|
87
|
-
rack (>= 1.0, < 3)
|
88
|
-
rainbow (3.0.0)
|
89
|
-
rake (13.0.3)
|
90
|
-
rb-fsevent (0.10.4)
|
91
|
-
rb-inotify (0.10.1)
|
92
|
-
ffi (~> 1.0)
|
93
|
-
regexp_parser (2.0.3)
|
94
|
-
rexml (3.2.4)
|
95
|
-
rspec (3.10.0)
|
96
|
-
rspec-core (~> 3.10.0)
|
97
|
-
rspec-expectations (~> 3.10.0)
|
98
|
-
rspec-mocks (~> 3.10.0)
|
99
|
-
rspec-core (3.10.1)
|
100
|
-
rspec-support (~> 3.10.0)
|
101
|
-
rspec-expectations (3.10.1)
|
102
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
103
|
-
rspec-support (~> 3.10.0)
|
104
|
-
rspec-mocks (3.10.1)
|
105
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
106
|
-
rspec-support (~> 3.10.0)
|
107
|
-
rspec-support (3.10.1)
|
108
|
-
rubocop (1.8.1)
|
109
|
-
parallel (~> 1.10)
|
110
|
-
parser (>= 3.0.0.0)
|
111
|
-
rainbow (>= 2.2.2, < 4.0)
|
112
|
-
regexp_parser (>= 1.8, < 3.0)
|
113
|
-
rexml
|
114
|
-
rubocop-ast (>= 1.2.0, < 2.0)
|
115
|
-
ruby-progressbar (~> 1.7)
|
116
|
-
unicode-display_width (>= 1.4.0, < 3.0)
|
117
|
-
rubocop-ast (1.4.0)
|
118
|
-
parser (>= 2.7.1.5)
|
119
|
-
ruby-progressbar (1.11.0)
|
120
|
-
ruby2_keywords (0.0.4)
|
121
|
-
ruby_dep (1.5.0)
|
122
|
-
shellany (0.0.1)
|
123
|
-
shotgun (0.9.2)
|
124
|
-
rack (>= 1.0)
|
125
|
-
simplecov (0.21.2)
|
126
|
-
docile (~> 1.1)
|
127
|
-
simplecov-html (~> 0.11)
|
128
|
-
simplecov_json_formatter (~> 0.1)
|
129
|
-
simplecov-html (0.12.3)
|
130
|
-
simplecov_json_formatter (0.1.2)
|
131
|
-
sinatra (2.1.0)
|
132
|
-
mustermann (~> 1.0)
|
133
|
-
rack (~> 2.2)
|
134
|
-
rack-protection (= 2.1.0)
|
135
|
-
tilt (~> 2.0)
|
136
|
-
thin (1.8.0)
|
137
|
-
daemons (~> 1.0, >= 1.0.9)
|
138
|
-
eventmachine (~> 1.0, >= 1.0.4)
|
139
|
-
rack (>= 1, < 3)
|
140
|
-
thor (1.0.1)
|
141
|
-
tilt (2.0.10)
|
142
|
-
unicode-display_width (2.0.0)
|
143
|
-
webmock (3.11.1)
|
144
|
-
addressable (>= 2.3.6)
|
145
|
-
crack (>= 0.3.2)
|
146
|
-
hashdiff (>= 0.4.0, < 2.0.0)
|
147
|
-
|
148
|
-
PLATFORMS
|
149
|
-
ruby
|
150
|
-
|
151
|
-
DEPENDENCIES
|
152
|
-
bundler (~> 1.9)
|
153
|
-
codecov
|
154
|
-
dotenv
|
155
|
-
gem-release
|
156
|
-
guard-rspec
|
157
|
-
jwt
|
158
|
-
listen (~> 3.1.5)
|
159
|
-
omniauth-auth0!
|
160
|
-
pry
|
161
|
-
rack-test
|
162
|
-
rake
|
163
|
-
rspec (~> 3.5)
|
164
|
-
rubocop
|
165
|
-
shotgun
|
166
|
-
simplecov
|
167
|
-
sinatra
|
168
|
-
thin
|
169
|
-
webmock
|
170
|
-
|
171
|
-
BUNDLED WITH
|
172
|
-
1.17.3
|