omniauth-azure-oauth2 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
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