omniauth-auth0 2.1.0 → 2.4.1

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,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'jwt'
3
5
 
@@ -79,6 +81,11 @@ describe OmniAuth::Strategies::Auth0 do
79
81
  expect(redirect_url).to have_query('state')
80
82
  expect(redirect_url).to have_query('client_id')
81
83
  expect(redirect_url).to have_query('redirect_uri')
84
+ expect(redirect_url).not_to have_query('auth0Client')
85
+ expect(redirect_url).not_to have_query('connection')
86
+ expect(redirect_url).not_to have_query('connection_scope')
87
+ expect(redirect_url).not_to have_query('prompt')
88
+ expect(redirect_url).not_to have_query('screen_hint')
82
89
  end
83
90
 
84
91
  it 'redirects to hosted login page' do
@@ -91,6 +98,47 @@ describe OmniAuth::Strategies::Auth0 do
91
98
  expect(redirect_url).to have_query('client_id')
92
99
  expect(redirect_url).to have_query('redirect_uri')
93
100
  expect(redirect_url).to have_query('connection', 'abcd')
101
+ expect(redirect_url).not_to have_query('auth0Client')
102
+ expect(redirect_url).not_to have_query('connection_scope')
103
+ expect(redirect_url).not_to have_query('prompt')
104
+ expect(redirect_url).not_to have_query('screen_hint')
105
+ end
106
+
107
+ it 'redirects to the hosted login page with connection_scope' do
108
+ get 'auth/auth0?connection_scope=identity_provider_scope'
109
+ expect(last_response.status).to eq(302)
110
+ redirect_url = last_response.headers['Location']
111
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
112
+ expect(redirect_url)
113
+ .to have_query('connection_scope', 'identity_provider_scope')
114
+ end
115
+
116
+ it 'redirects to hosted login page with prompt=login' do
117
+ get 'auth/auth0?prompt=login'
118
+ expect(last_response.status).to eq(302)
119
+ redirect_url = last_response.headers['Location']
120
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
121
+ expect(redirect_url).to have_query('response_type', 'code')
122
+ expect(redirect_url).to have_query('state')
123
+ expect(redirect_url).to have_query('client_id')
124
+ expect(redirect_url).to have_query('redirect_uri')
125
+ expect(redirect_url).to have_query('prompt', 'login')
126
+ expect(redirect_url).not_to have_query('auth0Client')
127
+ expect(redirect_url).not_to have_query('connection')
128
+ end
129
+
130
+ it 'redirects to hosted login page with screen_hint=signup' do
131
+ get 'auth/auth0?screen_hint=signup'
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('screen_hint', 'signup')
140
+ expect(redirect_url).not_to have_query('auth0Client')
141
+ expect(redirect_url).not_to have_query('connection')
94
142
  end
95
143
 
96
144
  describe 'callback' do
@@ -98,6 +146,7 @@ describe OmniAuth::Strategies::Auth0 do
98
146
  let(:expires_in) { 2000 }
99
147
  let(:token_type) { 'bearer' }
100
148
  let(:refresh_token) { 'refresh token' }
149
+ let(:telemetry_value) { Class.new.extend(OmniAuth::Auth0::Telemetry).telemetry_encoded }
101
150
 
102
151
  let(:user_id) { 'user identifier' }
103
152
  let(:state) { SecureRandom.hex(8) }
@@ -147,6 +196,7 @@ describe OmniAuth::Strategies::Auth0 do
147
196
 
148
197
  def stub_auth(body)
149
198
  stub_request(:post, 'https://samples.auth0.com/oauth/token')
199
+ .with(headers: { 'Auth0-Client' => telemetry_value })
150
200
  .to_return(
151
201
  headers: { 'Content-Type' => 'application/json' },
152
202
  body: MultiJson.encode(body)
@@ -294,7 +344,7 @@ RSpec::Matchers.define :have_query do |key, value|
294
344
  uri = redirect_uri(actual)
295
345
  query = query(uri)
296
346
  if value.nil?
297
- query[key].length == 1
347
+ query.key?(key)
298
348
  else
299
349
  query[key] == [value]
300
350
  end
@@ -2,11 +2,13 @@ $LOAD_PATH.unshift File.expand_path(__dir__)
2
2
  $LOAD_PATH.unshift File.expand_path('../lib', __dir__)
3
3
 
4
4
  require 'simplecov'
5
- if ENV['COVERAGE']
6
- SimpleCov.start do
7
- minimum_coverage(89.8)
8
- end
5
+ SimpleCov.start
6
+
7
+ if ENV['CI'] == 'true'
8
+ require 'codecov'
9
+ SimpleCov.formatter = SimpleCov::Formatter::Codecov
9
10
  end
11
+
10
12
  require 'rspec'
11
13
  require 'rack/test'
12
14
  require 'webmock/rspec'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-auth0
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Auth0
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-02 00:00:00.000000000 Z
11
+ date: 2020-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: omniauth-oauth2
@@ -50,29 +50,37 @@ executables: []
50
50
  extensions: []
51
51
  extra_rdoc_files: []
52
52
  files:
53
+ - ".circleci/config.yml"
53
54
  - ".gemrelease"
55
+ - ".github/CODEOWNERS"
54
56
  - ".github/ISSUE_TEMPLATE.md"
55
57
  - ".github/PULL_REQUEST_TEMPLATE.md"
58
+ - ".github/stale.yml"
56
59
  - ".gitignore"
57
60
  - ".rspec"
58
61
  - ".rubocop.yml"
59
- - ".travis.yml"
62
+ - ".snyk"
60
63
  - CHANGELOG.md
61
64
  - CODE_OF_CONDUCT.md
62
65
  - CONTRIBUTING.md
63
66
  - Gemfile
67
+ - Gemfile.lock
64
68
  - Guardfile
65
69
  - LICENSE
66
70
  - README.md
67
71
  - Rakefile
72
+ - codecov.yml
68
73
  - examples/sinatra/app.rb
69
74
  - examples/sinatra/config.ru
70
75
  - lib/omniauth-auth0.rb
71
76
  - lib/omniauth-auth0/version.rb
77
+ - lib/omniauth/auth0/errors.rb
72
78
  - lib/omniauth/auth0/jwt_validator.rb
79
+ - lib/omniauth/auth0/telemetry.rb
73
80
  - lib/omniauth/strategies/auth0.rb
74
81
  - omniauth-auth0.gemspec
75
82
  - spec/omniauth/auth0/jwt_validator_spec.rb
83
+ - spec/omniauth/auth0/telemetry_spec.rb
76
84
  - spec/omniauth/strategies/auth0_spec.rb
77
85
  - spec/resources/jwks.json
78
86
  - spec/spec_helper.rb
@@ -95,13 +103,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
103
  - !ruby/object:Gem::Version
96
104
  version: '0'
97
105
  requirements: []
98
- rubyforge_project: omniauth-auth0
99
- rubygems_version: 2.7.7
106
+ rubygems_version: 3.1.2
100
107
  signing_key:
101
108
  specification_version: 4
102
109
  summary: OmniAuth OAuth2 strategy for the Auth0 platform.
103
110
  test_files:
104
111
  - spec/omniauth/auth0/jwt_validator_spec.rb
112
+ - spec/omniauth/auth0/telemetry_spec.rb
105
113
  - spec/omniauth/strategies/auth0_spec.rb
106
114
  - spec/resources/jwks.json
107
115
  - spec/spec_helper.rb
@@ -1,6 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.2.5
4
- branches:
5
- only:
6
- - master