omniauth-azure-oauth2 0.0.9 → 0.0.10

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b934d53deb625528b9f999ca581fa4c14cffc555
4
- data.tar.gz: 316f91e22960627a3b9ec1d72c7810a50b927d1d
3
+ metadata.gz: 0bee864f23443c93668213276a72f72f0303587a
4
+ data.tar.gz: 820bdf249f54726683c44d6e2ea032c7b76ea147
5
5
  SHA512:
6
- metadata.gz: b98d6265575c2f747103a0f329f537ce517ccc5743eda6a8698d4834e0ce74e59789aaad85abc64ba7ef6c31edbc1676bc670806340f38cd73d2073f7c505366
7
- data.tar.gz: bf2ddfc11a676457d962ea484013f0981f9735a38662203366e07bc17fe813849b1641da1a9dc640eddfe31b9c49a180ed403d310087fa32f52dfcd1842ac962
6
+ metadata.gz: b1a1c080c1e85a7f74b5f4606c26eae1a48cd0c70fab15551c50833ab2a837fd932cb1450131a4745daad1e15ef77c2a2af5752968f99dee777030a38cebb1f5
7
+ data.tar.gz: 945d2872c93387bbc15baf598cc96fb41904c5ff8c7f2c221b0ece0d8a89a46fe986ef8807283a44528117805d0a36ff0dbdb3f9fbd33248e83d32b02dae197b
@@ -1,3 +1,6 @@
1
+ # Version 0.0.9
2
+ * Expand JWT dep. Thanks @ronaldsalas
3
+
1
4
  # Version 0.0.9
2
5
  * Added support for dynamic tenant urls. Thanks @marcus-fellinger-esc
3
6
 
@@ -1,5 +1,5 @@
1
1
  module OmniAuth
2
2
  module AzureOauth2
3
- VERSION = "0.0.9"
3
+ VERSION = "0.0.10"
4
4
  end
5
5
  end
@@ -27,15 +27,14 @@ module OmniAuth
27
27
  options.client_secret = provider.client_secret
28
28
  options.tenant_id =
29
29
  provider.respond_to?(:tenant_id) ? provider.tenant_id : 'common'
30
- options.base_azure_url =
30
+ options.base_azure_url =
31
31
  provider.respond_to?(:base_azure_url) ? provider.base_azure_url : BASE_AZURE_URL
32
32
 
33
+ options.authorize_params = provider.authorize_params if provider.respond_to?(:authorize_params)
33
34
  options.authorize_params.domain_hint = provider.domain_hint if provider.respond_to?(:domain_hint) && provider.domain_hint
34
35
  options.authorize_params.prompt = request.params['prompt'] if request.params['prompt']
35
36
  options.client_options.authorize_url = "#{options.base_azure_url}/#{options.tenant_id}/oauth2/authorize"
36
37
  options.client_options.token_url = "#{options.base_azure_url}/#{options.tenant_id}/oauth2/token"
37
-
38
- options.token_params.resource = options.resource
39
38
  super
40
39
  end
41
40
 
@@ -55,6 +54,11 @@ module OmniAuth
55
54
  }
56
55
  end
57
56
 
57
+ def token_params
58
+ azure_resource = request.env['omniauth.params'] && request.env['omniauth.params']['azure_resource']
59
+ super.merge(resource: azure_resource || options.resource)
60
+ end
61
+
58
62
  def callback_url
59
63
  full_host + script_name + callback_path
60
64
  end
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.license = "MIT"
18
18
 
19
19
  gem.add_dependency 'omniauth', '~> 1.0'
20
- gem.add_dependency 'jwt', '~> 1.0'
20
+ gem.add_dependency 'jwt', ['>= 1.0', '< 3.0']
21
21
 
22
22
  gem.add_runtime_dependency 'omniauth-oauth2', '~> 1.4'
23
23
 
@@ -46,12 +46,6 @@ describe OmniAuth::Strategies::AzureOauth2 do
46
46
  expect(subject.client.options[:token_url]).to eql('https://login.microsoftonline.com/tenant/oauth2/token')
47
47
  end
48
48
 
49
- it 'has correct token params' do
50
- allow(subject).to receive(:request) { request }
51
- subject.client
52
- expect(subject.token_params[:resource]).to eql('00000002-0000-0000-c000-000000000000')
53
- end
54
-
55
49
  describe "overrides" do
56
50
  it 'should override domain_hint' do
57
51
  @options = {domain_hint: 'hint'}
@@ -69,30 +63,30 @@ describe OmniAuth::Strategies::AzureOauth2 do
69
63
  subject do
70
64
  OmniAuth::Strategies::AzureOauth2.new(app, {client_id: 'id', client_secret: 'secret', tenant_id: 'tenant', base_azure_url: 'https://login.microsoftonline.de'}.merge(options))
71
65
  end
72
-
66
+
73
67
  describe '#client' do
74
68
  it 'has correct authorize url' do
75
69
  allow(subject).to receive(:request) { request }
76
70
  expect(subject.client.options[:authorize_url]).to eql('https://login.microsoftonline.de/tenant/oauth2/authorize')
77
71
  end
78
-
72
+
79
73
  it 'has correct authorize params' do
80
74
  allow(subject).to receive(:request) { request }
81
75
  subject.client
82
76
  expect(subject.authorize_params[:domain_hint]).to be_nil
83
77
  end
84
-
78
+
85
79
  it 'has correct token url' do
86
80
  allow(subject).to receive(:request) { request }
87
81
  expect(subject.client.options[:token_url]).to eql('https://login.microsoftonline.de/tenant/oauth2/token')
88
82
  end
89
-
83
+
90
84
  it 'has correct token params' do
91
85
  allow(subject).to receive(:request) { request }
92
86
  subject.client
93
87
  expect(subject.token_params[:resource]).to eql('00000002-0000-0000-c000-000000000000')
94
88
  end
95
-
89
+
96
90
  describe "overrides" do
97
91
  it 'should override domain_hint' do
98
92
  @options = {domain_hint: 'hint'}
@@ -103,7 +97,7 @@ describe OmniAuth::Strategies::AzureOauth2 do
103
97
  end
104
98
  end
105
99
  end
106
-
100
+
107
101
  describe 'static common configuration' do
108
102
  let(:options) { @options || {} }
109
103
  subject do
@@ -143,6 +137,9 @@ describe OmniAuth::Strategies::AzureOauth2 do
143
137
  'tenant'
144
138
  end
145
139
 
140
+ def authorize_params
141
+ { custom_option: 'value' }
142
+ end
146
143
  }
147
144
  }
148
145
 
@@ -162,6 +159,7 @@ describe OmniAuth::Strategies::AzureOauth2 do
162
159
  it 'has correct authorize params' do
163
160
  subject.client
164
161
  expect(subject.authorize_params[:domain_hint]).to be_nil
162
+ expect(subject.authorize_params[:custom_option]).to eql('value')
165
163
  end
166
164
 
167
165
  it 'has correct token url' do
@@ -190,52 +188,52 @@ describe OmniAuth::Strategies::AzureOauth2 do
190
188
  Class.new {
191
189
  def initialize(strategy)
192
190
  end
193
-
191
+
194
192
  def client_id
195
193
  'id'
196
194
  end
197
-
195
+
198
196
  def client_secret
199
197
  'secret'
200
198
  end
201
-
199
+
202
200
  def tenant_id
203
201
  'tenant'
204
202
  end
205
-
203
+
206
204
  def base_azure_url
207
205
  'https://login.microsoftonline.de'
208
206
  end
209
207
  }
210
208
  }
211
-
209
+
212
210
  subject do
213
211
  OmniAuth::Strategies::AzureOauth2.new(app, provider_klass)
214
212
  end
215
-
213
+
216
214
  before do
217
215
  allow(subject).to receive(:request) { request }
218
216
  end
219
-
217
+
220
218
  describe '#client' do
221
219
  it 'has correct authorize url' do
222
220
  expect(subject.client.options[:authorize_url]).to eql('https://login.microsoftonline.de/tenant/oauth2/authorize')
223
221
  end
224
-
222
+
225
223
  it 'has correct authorize params' do
226
224
  subject.client
227
225
  expect(subject.authorize_params[:domain_hint]).to be_nil
228
226
  end
229
-
227
+
230
228
  it 'has correct token url' do
231
229
  expect(subject.client.options[:token_url]).to eql('https://login.microsoftonline.de/tenant/oauth2/token')
232
230
  end
233
-
231
+
234
232
  it 'has correct token params' do
235
233
  subject.client
236
234
  expect(subject.token_params[:resource]).to eql('00000002-0000-0000-c000-000000000000')
237
235
  end
238
-
236
+
239
237
  # todo: how to get this working?
240
238
  # describe "overrides" do
241
239
  # it 'should override domain_hint' do
@@ -245,7 +243,7 @@ describe OmniAuth::Strategies::AzureOauth2 do
245
243
  # end
246
244
  # end
247
245
  end
248
-
246
+
249
247
  end
250
248
 
251
249
  describe 'dynamic common configuration' do
@@ -307,4 +305,28 @@ describe OmniAuth::Strategies::AzureOauth2 do
307
305
  end.to_not raise_error
308
306
  end
309
307
  end
308
+
309
+ describe 'token_params' do
310
+ let(:strategy) { OmniAuth::Strategies::AzureOauth2.new(app, client_id: 'id', client_secret: 'secret') }
311
+ let(:request) { double('Request', env: env) }
312
+ let(:env) { {} }
313
+
314
+ subject { strategy.token_params }
315
+
316
+ before { allow(strategy).to receive(:request).and_return request }
317
+
318
+ it { is_expected.to be_a OmniAuth::Strategy::Options }
319
+ it 'has default resource' do
320
+ expect(subject.resource).to eq '00000002-0000-0000-c000-000000000000'
321
+ end
322
+
323
+ context 'when custom crm url' do
324
+ let(:crm_url) { 'https://mydomain.crm.dynamics.com/' }
325
+ let(:env) { { 'omniauth.params' => { 'azure_resource' => crm_url } } }
326
+
327
+ it 'has resource from url params' do
328
+ expect(subject.resource).to eq crm_url
329
+ end
330
+ end
331
+ end
310
332
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-azure-oauth2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Nadig
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-25 00:00:00.000000000 Z
11
+ date: 2018-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: omniauth
@@ -28,16 +28,22 @@ dependencies:
28
28
  name: jwt
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.0'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '3.0'
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - "~>"
41
+ - - ">="
39
42
  - !ruby/object:Gem::Version
40
43
  version: '1.0'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '3.0'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: omniauth-oauth2
43
49
  requirement: !ruby/object:Gem::Requirement