omniauth-auth0 2.0.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+
4
+ describe OmniAuth::Auth0::Telemetry do
5
+
6
+ let(:test_class) { Class.new.extend(OmniAuth::Auth0::Telemetry) }
7
+
8
+ describe 'telemetry' do
9
+
10
+ it 'should have the correct SDK name' do
11
+ expect(test_class.telemetry).to have_key(:name)
12
+ expect(test_class.telemetry[:name]).to eq('omniauth-auth0')
13
+ end
14
+
15
+ it 'should have the correct SDK version' do
16
+ expect(test_class.telemetry).to have_key(:version)
17
+ expect(test_class.telemetry[:version]).to eq(OmniAuth::Auth0::VERSION)
18
+ end
19
+
20
+ it 'should include the Ruby version' do
21
+ expect(test_class.telemetry).to have_key(:env)
22
+ expect(test_class.telemetry[:env]).to have_key(:ruby)
23
+ expect(test_class.telemetry[:env][:ruby]).to eq(RUBY_VERSION)
24
+ end
25
+
26
+ end
27
+
28
+ end
@@ -1,4 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
4
+ require 'jwt'
5
+ require 'multi_json'
6
+
7
+ OmniAuth.config.allowed_request_methods = [:get, :post]
2
8
 
3
9
  RSpec.shared_examples 'site has valid domain url' do |url|
4
10
  it { expect(subject.site).to eq(url) }
@@ -23,7 +29,12 @@ describe OmniAuth::Strategies::Auth0 do
23
29
  end
24
30
 
25
31
  describe 'client_options' do
26
- let(:subject) { auth0.client }
32
+ let(:subject) { OmniAuth::Strategies::Auth0.new(
33
+ application,
34
+ client_id,
35
+ client_secret,
36
+ domain_url
37
+ ).client }
27
38
 
28
39
  context 'domain with https' do
29
40
  let(:domain_url) { 'https://samples.auth0.com' }
@@ -78,6 +89,127 @@ describe OmniAuth::Strategies::Auth0 do
78
89
  expect(redirect_url).to have_query('state')
79
90
  expect(redirect_url).to have_query('client_id')
80
91
  expect(redirect_url).to have_query('redirect_uri')
92
+ expect(redirect_url).not_to have_query('auth0Client')
93
+ expect(redirect_url).not_to have_query('connection')
94
+ expect(redirect_url).not_to have_query('connection_scope')
95
+ expect(redirect_url).not_to have_query('prompt')
96
+ expect(redirect_url).not_to have_query('screen_hint')
97
+ expect(redirect_url).not_to have_query('login_hint')
98
+ expect(redirect_url).not_to have_query('organization')
99
+ expect(redirect_url).not_to have_query('invitation')
100
+ end
101
+
102
+ it 'redirects to hosted login page' do
103
+ get 'auth/auth0?connection=abcd'
104
+ expect(last_response.status).to eq(302)
105
+ redirect_url = last_response.headers['Location']
106
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
107
+ expect(redirect_url).to have_query('response_type', 'code')
108
+ expect(redirect_url).to have_query('state')
109
+ expect(redirect_url).to have_query('client_id')
110
+ expect(redirect_url).to have_query('redirect_uri')
111
+ expect(redirect_url).to have_query('connection', 'abcd')
112
+ expect(redirect_url).not_to have_query('auth0Client')
113
+ expect(redirect_url).not_to have_query('connection_scope')
114
+ expect(redirect_url).not_to have_query('prompt')
115
+ expect(redirect_url).not_to have_query('screen_hint')
116
+ expect(redirect_url).not_to have_query('login_hint')
117
+ expect(redirect_url).not_to have_query('organization')
118
+ expect(redirect_url).not_to have_query('invitation')
119
+ end
120
+
121
+ it 'redirects to the hosted login page with connection_scope' do
122
+ get 'auth/auth0?connection_scope=identity_provider_scope'
123
+ expect(last_response.status).to eq(302)
124
+ redirect_url = last_response.headers['Location']
125
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
126
+ expect(redirect_url)
127
+ .to have_query('connection_scope', 'identity_provider_scope')
128
+ end
129
+
130
+ it 'redirects to hosted login page with prompt=login' do
131
+ get 'auth/auth0?prompt=login'
132
+ expect(last_response.status).to eq(302)
133
+ redirect_url = last_response.headers['Location']
134
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
135
+ expect(redirect_url).to have_query('response_type', 'code')
136
+ expect(redirect_url).to have_query('state')
137
+ expect(redirect_url).to have_query('client_id')
138
+ expect(redirect_url).to have_query('redirect_uri')
139
+ expect(redirect_url).to have_query('prompt', 'login')
140
+ expect(redirect_url).not_to have_query('auth0Client')
141
+ expect(redirect_url).not_to have_query('connection')
142
+ expect(redirect_url).not_to have_query('login_hint')
143
+ expect(redirect_url).not_to have_query('organization')
144
+ expect(redirect_url).not_to have_query('invitation')
145
+ end
146
+
147
+ it 'redirects to hosted login page with screen_hint=signup' do
148
+ get 'auth/auth0?screen_hint=signup'
149
+ expect(last_response.status).to eq(302)
150
+ redirect_url = last_response.headers['Location']
151
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
152
+ expect(redirect_url).to have_query('response_type', 'code')
153
+ expect(redirect_url).to have_query('state')
154
+ expect(redirect_url).to have_query('client_id')
155
+ expect(redirect_url).to have_query('redirect_uri')
156
+ expect(redirect_url).to have_query('screen_hint', 'signup')
157
+ expect(redirect_url).not_to have_query('auth0Client')
158
+ expect(redirect_url).not_to have_query('connection')
159
+ expect(redirect_url).not_to have_query('login_hint')
160
+ expect(redirect_url).not_to have_query('organization')
161
+ expect(redirect_url).not_to have_query('invitation')
162
+ end
163
+
164
+ it 'redirects to hosted login page with organization=TestOrg and invitation=TestInvite' do
165
+ get 'auth/auth0?organization=TestOrg&invitation=TestInvite'
166
+ expect(last_response.status).to eq(302)
167
+ redirect_url = last_response.headers['Location']
168
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
169
+ expect(redirect_url).to have_query('response_type', 'code')
170
+ expect(redirect_url).to have_query('state')
171
+ expect(redirect_url).to have_query('client_id')
172
+ expect(redirect_url).to have_query('redirect_uri')
173
+ expect(redirect_url).to have_query('organization', 'TestOrg')
174
+ expect(redirect_url).to have_query('invitation', 'TestInvite')
175
+ expect(redirect_url).not_to have_query('auth0Client')
176
+ expect(redirect_url).not_to have_query('connection')
177
+ expect(redirect_url).not_to have_query('connection_scope')
178
+ expect(redirect_url).not_to have_query('prompt')
179
+ expect(redirect_url).not_to have_query('screen_hint')
180
+ expect(redirect_url).not_to have_query('login_hint')
181
+ end
182
+
183
+ it 'redirects to hosted login page with login_hint=example@mail.com' do
184
+ get 'auth/auth0?login_hint=example@mail.com'
185
+ expect(last_response.status).to eq(302)
186
+ redirect_url = last_response.headers['Location']
187
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
188
+ expect(redirect_url).to have_query('response_type', 'code')
189
+ expect(redirect_url).to have_query('state')
190
+ expect(redirect_url).to have_query('client_id')
191
+ expect(redirect_url).to have_query('redirect_uri')
192
+ expect(redirect_url).to have_query('login_hint', 'example@mail.com')
193
+ expect(redirect_url).not_to have_query('auth0Client')
194
+ expect(redirect_url).not_to have_query('connection')
195
+ expect(redirect_url).not_to have_query('connection_scope')
196
+ expect(redirect_url).not_to have_query('prompt')
197
+ expect(redirect_url).not_to have_query('screen_hint')
198
+ expect(redirect_url).not_to have_query('organization')
199
+ expect(redirect_url).not_to have_query('invitation')
200
+ end
201
+
202
+ def session
203
+ session_cookie = last_response.cookies['rack.session'].first
204
+ session_data, _, _ = session_cookie.rpartition('--')
205
+ decoded_session_data = Base64.decode64(session_data)
206
+ Marshal.load(decoded_session_data)
207
+ end
208
+
209
+ it "stores session['authorize_params'] as a plain Ruby Hash" do
210
+ get '/auth/auth0'
211
+
212
+ expect(session['authorize_params'].class).to eq(::Hash)
81
213
  end
82
214
 
83
215
  describe 'callback' do
@@ -85,7 +217,7 @@ describe OmniAuth::Strategies::Auth0 do
85
217
  let(:expires_in) { 2000 }
86
218
  let(:token_type) { 'bearer' }
87
219
  let(:refresh_token) { 'refresh token' }
88
- let(:id_token) { 'id token' }
220
+ let(:telemetry_value) { Class.new.extend(OmniAuth::Auth0::Telemetry).telemetry_encoded }
89
221
 
90
222
  let(:user_id) { 'user identifier' }
91
223
  let(:state) { SecureRandom.hex(8) }
@@ -95,6 +227,20 @@ describe OmniAuth::Strategies::Auth0 do
95
227
  let(:email) { 'mail@mail.com' }
96
228
  let(:email_verified) { true }
97
229
 
230
+ let(:id_token) do
231
+ payload = {}
232
+ payload['sub'] = user_id
233
+ payload['iss'] = "#{domain_url}/"
234
+ payload['aud'] = client_id
235
+ payload['name'] = name
236
+ payload['nickname'] = nickname
237
+ payload['picture'] = picture
238
+ payload['email'] = email
239
+ payload['email_verified'] = email_verified
240
+
241
+ JWT.encode payload, client_secret, 'HS256'
242
+ end
243
+
98
244
  let(:oauth_response) do
99
245
  {
100
246
  access_token: access_token,
@@ -112,20 +258,11 @@ describe OmniAuth::Strategies::Auth0 do
112
258
  }
113
259
  end
114
260
 
115
- let(:basic_user_info) { { sub: user_id } }
116
- let(:oidc_user_info) do
117
- {
118
- sub: user_id,
119
- name: name,
120
- nickname: nickname,
121
- email: email,
122
- picture: picture,
123
- email_verified: email_verified
124
- }
125
- end
261
+ let(:basic_user_info) { { "sub" => user_id, "name" => name } }
126
262
 
127
263
  def stub_auth(body)
128
264
  stub_request(:post, 'https://samples.auth0.com/oauth/token')
265
+ .with(headers: { 'Auth0-Client' => telemetry_value })
129
266
  .to_return(
130
267
  headers: { 'Content-Type' => 'application/json' },
131
268
  body: MultiJson.encode(body)
@@ -149,7 +286,9 @@ describe OmniAuth::Strategies::Auth0 do
149
286
  WebMock.reset!
150
287
  end
151
288
 
152
- let(:subject) { MultiJson.decode(last_response.body) }
289
+ let(:subject) do
290
+ MultiJson.decode(last_response.body)
291
+ end
153
292
 
154
293
  context 'basic oauth' do
155
294
  before do
@@ -168,10 +307,14 @@ describe OmniAuth::Strategies::Auth0 do
168
307
  expect(subject['credentials']['expires_at']).to_not be_nil
169
308
  end
170
309
 
171
- it 'has basic values' do
310
+ it 'has basic values' do
172
311
  expect(subject['provider']).to eq('auth0')
173
312
  expect(subject['uid']).to eq(user_id)
174
- expect(subject['info']['name']).to eq(user_id)
313
+ expect(subject['info']['name']).to eq(name)
314
+ end
315
+
316
+ it 'should use the user info endpoint' do
317
+ expect(subject['extra']['raw_info']).to eq(basic_user_info)
175
318
  end
176
319
  end
177
320
 
@@ -197,7 +340,6 @@ describe OmniAuth::Strategies::Auth0 do
197
340
  context 'oidc' do
198
341
  before do
199
342
  stub_auth(oidc_response)
200
- stub_userinfo(oidc_user_info)
201
343
  trigger_callback
202
344
  end
203
345
 
@@ -273,7 +415,7 @@ RSpec::Matchers.define :have_query do |key, value|
273
415
  uri = redirect_uri(actual)
274
416
  query = query(uri)
275
417
  if value.nil?
276
- query[key].length == 1
418
+ query.key?(key)
277
419
  else
278
420
  query[key] == [value]
279
421
  end
@@ -0,0 +1,28 @@
1
+ {
2
+ "keys": [
3
+ {
4
+ "alg": "RS256",
5
+ "kty": "RSA",
6
+ "use": "sig",
7
+ "x5c": [
8
+ "MIIDCzCCAfOgAwIBAgIJAJP6qydiMpsuMA0GCSqGSIb3DQEBBQUAMBwxGjAYBgNVBAMMEXNhbXBsZXMuYXV0aDAuY29tMB4XDTE0MDUyNjIyMDA1MFoXDTI4MDIwMjIyMDA1MFowHDEaMBgGA1UEAwwRc2FtcGxlcy5hdXRoMC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCkH4CFGSJ4s3mwCBzaGGwxa9Jxzfb1ia4nUumxbsuaB7PClZZgrNQiOR3MXVNV9W6F1D+wjT6oFHOo7TOkVI22I/ff3XZTE0F35UUHGWRtiQ4LdZxwOPTed2Lax3F2DEyl3Y0CguUKbq2sSghvHYcggM6aj3N53VBsnBh/kdrURDLx1RYqBIL6Fvkhb/V/v/u9UKhZM0CDQRef9FZ7R8q9ie9cnbDOj1dT9d64kiJIYtTraG0gOrs4LI+4KK0EZu5R7Uo053IK7kfNasWhDkl8yxNYkDxwfcIuAcDmLgLnAI4tfW5beJuw+/w75PO/EwzwsnvppXaAz7e3Wf8g1yWFAgMBAAGjUDBOMB0GA1UdDgQWBBTsmytFLNox+NUZdTNlCUL3hHrngTAfBgNVHSMEGDAWgBTsmytFLNox+NUZdTNlCUL3hHrngTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAodbRX/34LnWB70l8dpDF1neDoG29F0XdpE9ICWHeWB1gb/FvJ5UMy9/pnL0DI3mPwkTDDob+16Zc68o6dT6sH3vEUP1iRreJlFADEmJZjrH9P4Y7ttx3G2Uw2RU5uucXIqiyMDBrQo4vx4Lnghl+b/WYbZJgzLfZLgkOEjcznS0Yi5Wdz6MvaL3FehSfweHyrjmxz0e8elHq7VY8OqRA+4PmUBce9BgDCk9fZFjgj8l0m9Vc5pPKSY9LMmTyrYkeDr/KppqdXKOCHmv7AIGb6rMCtbkIL/CM7Bh9Hx78/UKAz87Sl9A1yXVNjKbZwOEW60ORIwJmd8Tv46gJF+/rV"
9
+ ],
10
+ "n": "pB-AhRkieLN5sAgc2hhsMWvScc329YmuJ1LpsW7LmgezwpWWYKzUIjkdzF1TVfVuhdQ_sI0-qBRzqO0zpFSNtiP33912UxNBd-VFBxlkbYkOC3WccDj03ndi2sdxdgxMpd2NAoLlCm6trEoIbx2HIIDOmo9zed1QbJwYf5Ha1EQy8dUWKgSC-hb5IW_1f7_7vVCoWTNAg0EXn_RWe0fKvYnvXJ2wzo9XU_XeuJIiSGLU62htIDq7OCyPuCitBGbuUe1KNOdyCu5HzWrFoQ5JfMsTWJA8cH3CLgHA5i4C5wCOLX1uW3ibsPv8O-TzvxMM8LJ76aV2gM-3t1n_INclhQ",
11
+ "e": "AQAB",
12
+ "kid": "NkJCQzIyQzRBMEU4NjhGNUU4MzU4RkY0M0ZDQzkwOUQ0Q0VGNUMwQg",
13
+ "x5t": "NkJCQzIyQzRBMEU4NjhGNUU4MzU4RkY0M0ZDQzkwOUQ0Q0VGNUMwQg"
14
+ },
15
+ {
16
+ "alg": "RS256",
17
+ "kty": "RSA",
18
+ "use": "sig",
19
+ "x5c": [
20
+ "MIIC8DCCAdigAwIBAgIJ4pL5sRgcIYGZMA0GCSqGSIb3DQEBBQUAMB8xHTAbBgNVBAMTFGxiYWxtYWNlZGEuYXV0aDAuY29tMB4XDTE1MTIxMjE5MDczM1oXDTI5MDgyMDE5MDczM1owHzEdMBsGA1UEAxMUbGJhbG1hY2VkYS5hdXRoMC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPoo5DA/X8suAZujdmD2D88Ggtu8G/kuLUdEuj1W3+wzmFcEqQpE532rg8L0uppWKAbmLWzkuwyioNDhWwCtXnug3BFQf5Lrc6nTxjk4ZQt/HdsYWCGSSZueMUG/3I+2PSql3atD2nedjY6Z9hWU8kzOjF9wzkLMgPf/OYpuz9A+6d+/K8jApRPfsQ1LDVWDG8YRtj+IyHhSvXS+cK03iuD7yVLKkIZuoS8ymMJpnZONHGds/3P9pHY29KqliSYW0eGEX3BIarZG06gRJ+88WUbRi9+rfVAoGLq++S+bc021txK+qYS3nknhY0uv/ODBb4eeycuDjjdyLBCShVvbXFAgMBAAGjLzAtMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFG38TTjyzhRmpK7MXfvBXDcBtYJ3MA0GCSqGSIb3DQEBBQUAA4IBAQCLNW+rA25tjHs6Sa9VPgBfMMLd1PIEgMpQhET9JqpGYUgB+0q1leXw1cwh14x/6PF2oo3jPOMW+wCDA7KAVKYewYSr/Enph+zNFPaq2YQL9dCsVFcBsnEGznwZaqHrqxQDX9S2Ek6E9jNsuBCSpAPcTsfbn2TXz77V+HZ/4tbwRvYEX1S5agiZFyjZzJMiZU1KQzP5PhfzD6RPl5KTK2PYRhVdXwyuFxOdJzCzOC9E/Uw30Zd6+9oHmoNfvJr8BRy67YWjXaQAh2m8e+zv/dEzPimgvaLmI1yz4W+93dJy3NdMuCvObOqA534tviv5PkV57ewXAnWPbxyBHr57HdQ1"
21
+ ],
22
+ "n": "z6KOQwP1_LLgGbo3Zg9g_PBoLbvBv5Li1HRLo9Vt_sM5hXBKkKROd9q4PC9LqaVigG5i1s5LsMoqDQ4VsArV57oNwRUH-S63Op08Y5OGULfx3bGFghkkmbnjFBv9yPtj0qpd2rQ9p3nY2OmfYVlPJMzoxfcM5CzID3_zmKbs_QPunfvyvIwKUT37ENSw1VgxvGEbY_iMh4Ur10vnCtN4rg-8lSypCGbqEvMpjCaZ2TjRxnbP9z_aR2NvSqpYkmFtHhhF9wSGq2RtOoESfvPFlG0Yvfq31QKBi6vvkvm3NNtbcSvqmEt55J4WNLr_zgwW-HnsnLg443ciwQkoVb21xQ",
23
+ "e": "AQAB",
24
+ "kid": "RUVBOTVEMEZBMTA5NDAzNEQzNTZGNzMyMTI4MzU1RkNFQzhCQTM0Mg",
25
+ "x5t": "RUVBOTVEMEZBMTA5NDAzNEQzNTZGNzMyMTI4MzU1RkNFQzhCQTM0Mg"
26
+ }
27
+ ]
28
+ }
data/spec/spec_helper.rb CHANGED
@@ -1,12 +1,15 @@
1
- $LOAD_PATH.unshift File.expand_path('..', __FILE__)
2
- $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
1
+ $LOAD_PATH.unshift File.expand_path(__dir__)
2
+ $LOAD_PATH.unshift File.expand_path('../lib', __dir__)
3
3
 
4
+ require 'multi_json'
4
5
  require 'simplecov'
5
- if ENV['COVERAGE']
6
- SimpleCov.start do
7
- minimum_coverage(89.8)
8
- end
6
+ SimpleCov.start
7
+
8
+ if ENV['CI'] == 'true'
9
+ require 'simplecov-cobertura'
10
+ SimpleCov.formatter = SimpleCov::Formatter::CoberturaFormatter
9
11
  end
12
+
10
13
  require 'rspec'
11
14
  require 'rack/test'
12
15
  require 'webmock/rspec'
@@ -20,6 +23,8 @@ RSpec.configure do |config|
20
23
  config.include WebMock::API
21
24
  config.include Rack::Test::Methods
22
25
  config.extend OmniAuth::Test::StrategyMacros, type: :strategy
26
+ config.filter_run focus: true
27
+ config.run_all_when_everything_filtered = true
23
28
 
24
29
  def app
25
30
  @app || make_application
@@ -37,7 +42,7 @@ RSpec.configure do |config|
37
42
  configure do
38
43
  enable :sessions
39
44
  set :show_exceptions, false
40
- set :session_secret, 'TEST'
45
+ set :session_secret, '9771aff2c634257053c62ba072c54754bd2cc92739b37e81c3eda505da48c2ec'
41
46
  end
42
47
 
43
48
  use OmniAuth::Builder do
metadata CHANGED
@@ -1,79 +1,115 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-auth0
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Auth0
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-25 00:00:00.000000000 Z
11
+ date: 2022-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: omniauth
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: omniauth-oauth2
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '1.4'
33
+ version: '1'
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: '1.4'
40
+ version: '1'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - "~>"
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: '1.9'
47
+ version: '0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - "~>"
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
- version: '1.9'
54
+ version: '0'
41
55
  description: |
42
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.
43
57
 
44
58
  OmniAuth is a library that standardizes multi-provider authentication for web applications. It was created to be powerful, flexible, and do as little as possible.
45
59
 
46
- omniauth-auth0 is the omniauth strategy for Auth0.
60
+ omniauth-auth0 is the OmniAuth strategy for Auth0.
47
61
  email:
48
62
  - info@auth0.com
49
63
  executables: []
50
64
  extensions: []
51
65
  extra_rdoc_files: []
52
66
  files:
67
+ - ".circleci/config.yml"
68
+ - ".devcontainer/devcontainer.json"
53
69
  - ".gemrelease"
70
+ - ".github/CODEOWNERS"
71
+ - ".github/ISSUE_TEMPLATE/config.yml"
72
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
73
+ - ".github/ISSUE_TEMPLATE/report_a_bug.md"
74
+ - ".github/PULL_REQUEST_TEMPLATE.md"
75
+ - ".github/stale.yml"
76
+ - ".github/workflows/semgrep.yml"
54
77
  - ".gitignore"
55
78
  - ".rspec"
56
79
  - ".rubocop.yml"
57
- - ".travis.yml"
80
+ - ".semgrepignore"
81
+ - ".shiprc"
82
+ - ".snyk"
58
83
  - CHANGELOG.md
84
+ - CONTRIBUTING.md
85
+ - EXAMPLES.md
59
86
  - Gemfile
87
+ - Gemfile.lock
60
88
  - Guardfile
61
89
  - LICENSE
62
90
  - README.md
63
91
  - Rakefile
92
+ - codecov.yml
64
93
  - examples/sinatra/app.rb
65
94
  - examples/sinatra/config.ru
66
95
  - lib/omniauth-auth0.rb
67
96
  - lib/omniauth-auth0/version.rb
97
+ - lib/omniauth/auth0/errors.rb
98
+ - lib/omniauth/auth0/jwt_validator.rb
99
+ - lib/omniauth/auth0/telemetry.rb
68
100
  - lib/omniauth/strategies/auth0.rb
69
101
  - omniauth-auth0.gemspec
102
+ - opslevel.yml
103
+ - spec/omniauth/auth0/jwt_validator_spec.rb
104
+ - spec/omniauth/auth0/telemetry_spec.rb
70
105
  - spec/omniauth/strategies/auth0_spec.rb
106
+ - spec/resources/jwks.json
71
107
  - spec/spec_helper.rb
72
108
  homepage: https://github.com/auth0/omniauth-auth0
73
109
  licenses:
74
110
  - MIT
75
111
  metadata: {}
76
- post_install_message:
112
+ post_install_message:
77
113
  rdoc_options: []
78
114
  require_paths:
79
115
  - lib
@@ -88,11 +124,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
124
  - !ruby/object:Gem::Version
89
125
  version: '0'
90
126
  requirements: []
91
- rubyforge_project: omniauth-auth0
92
- rubygems_version: 2.4.5.1
93
- signing_key:
127
+ rubygems_version: 3.2.22
128
+ signing_key:
94
129
  specification_version: 4
95
- summary: Omniauth OAuth2 strategy for the Auth0 platform.
130
+ summary: OmniAuth OAuth2 strategy for the Auth0 platform.
96
131
  test_files:
132
+ - spec/omniauth/auth0/jwt_validator_spec.rb
133
+ - spec/omniauth/auth0/telemetry_spec.rb
97
134
  - spec/omniauth/strategies/auth0_spec.rb
135
+ - spec/resources/jwks.json
98
136
  - spec/spec_helper.rb
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.2.5
4
- branches:
5
- only:
6
- - master