oauth2 1.4.1 → 1.4.4

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.
@@ -1,19 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'faraday', '0.9.2'
4
-
3
+ gem 'faraday', '~> 0.15.4'
5
4
  gem 'rack', '~> 1.2'
6
5
 
7
- group :development do
8
- gem 'pry'
9
- end
10
-
11
- group :test do
12
- gem 'rake'
13
- gem 'rspec'
14
- gem 'rspec-pending_for'
15
- gem 'rubocop', '~> 0.53.0'
16
- gem 'rubocop-rspec', '~> 1.24.0'
17
- end
18
-
19
6
  gemspec :path => '../'
@@ -1,17 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'faraday', '0.9.2'
4
-
5
- group :development do
6
- gem 'pry'
7
- end
8
-
9
- group :test do
10
- gem 'rake'
11
- gem 'rspec'
12
- gem 'rspec-pending_for'
13
- gem 'rubocop', '~> 0.53.0'
14
- gem 'rubocop-rspec', '~> 1.24.0'
15
- end
16
-
17
3
  gemspec :path => '../'
@@ -1,17 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'faraday', '0.9.2'
4
-
5
- group :development do
6
- gem 'pry'
7
- end
8
-
9
- group :test do
10
- gem 'rake'
11
- gem 'rspec'
12
- gem 'rspec-pending_for'
13
- gem 'rubocop', '~> 0.53.0'
14
- gem 'rubocop-rspec', '~> 1.24.0'
15
- end
16
-
17
3
  gemspec :path => '../'
@@ -1,17 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'faraday', '0.9.2'
4
-
5
- group :development do
6
- gem 'pry'
7
- end
8
-
9
- group :test do
10
- gem 'rake'
11
- gem 'rspec'
12
- gem 'rspec-pending_for'
13
- gem 'rubocop', '~> 0.53.0'
14
- gem 'rubocop-rspec', '~> 1.24.0'
15
- end
16
-
17
3
  gemspec :path => '../'
@@ -1,17 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'faraday', '0.9.2'
4
-
5
- group :development do
6
- gem 'pry'
7
- end
8
-
9
- group :test do
10
- gem 'rake'
11
- gem 'rspec'
12
- gem 'rspec-pending_for'
13
- gem 'rubocop', '~> 0.53.0'
14
- gem 'rubocop-rspec', '~> 1.24.0'
15
- end
16
-
17
3
  gemspec :path => '../'
@@ -0,0 +1,9 @@
1
+ source 'https://rubygems.org'
2
+
3
+ group :development do
4
+ gem 'pry'
5
+ gem 'byebug'
6
+ gem 'pry-byebug'
7
+ end
8
+
9
+ gemspec :path => '../'
@@ -0,0 +1,9 @@
1
+ source 'https://rubygems.org'
2
+
3
+ group :development do
4
+ gem 'pry'
5
+ gem 'byebug'
6
+ gem 'pry-byebug'
7
+ end
8
+
9
+ gemspec :path => '../'
@@ -1,17 +1,9 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'faraday', '0.9.2'
4
-
5
3
  group :development do
6
4
  gem 'pry'
7
- end
8
-
9
- group :test do
10
- gem 'rake'
11
- gem 'rspec'
12
- gem 'rspec-pending_for'
13
- gem 'rubocop', '~> 0.53.0'
14
- gem 'rubocop-rspec', '~> 1.24.0'
5
+ gem 'byebug'
6
+ gem 'pry-byebug'
15
7
  end
16
8
 
17
9
  gemspec :path => '../'
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec :path => '../'
@@ -46,7 +46,7 @@ module OAuth2
46
46
  end
47
47
  @expires_in ||= opts.delete('expires')
48
48
  @expires_in &&= @expires_in.to_i
49
- @expires_at &&= @expires_at.to_i
49
+ @expires_at &&= convert_expires_at(@expires_at)
50
50
  @expires_at ||= Time.now.to_i + @expires_in if @expires_in
51
51
  @options = {:mode => opts.delete(:mode) || :header,
52
52
  :header_format => opts.delete(:header_format) || 'Bearer %s',
@@ -169,5 +169,12 @@ module OAuth2
169
169
  raise("invalid :mode option of #{options[:mode]}")
170
170
  end
171
171
  end
172
+
173
+ def convert_expires_at(expires_at)
174
+ expires_at_i = expires_at.to_i
175
+ return expires_at_i if expires_at_i > Time.now.utc.to_i
176
+ return Time.parse(expires_at).to_i if expires_at.is_a?(String)
177
+ expires_at_i
178
+ end
172
179
  end
173
180
  end
@@ -25,6 +25,10 @@ module OAuth2
25
25
  apply_basic_auth(params)
26
26
  when :request_body
27
27
  apply_params_auth(params)
28
+ when :tls_client_auth
29
+ apply_client_id(params)
30
+ when :private_key_jwt
31
+ params
28
32
  else
29
33
  raise NotImplementedError
30
34
  end
@@ -42,6 +46,12 @@ module OAuth2
42
46
  {'client_id' => id, 'client_secret' => secret}.merge(params)
43
47
  end
44
48
 
49
+ # When using schemes that don't require the client_secret to be passed i.e TLS Client Auth,
50
+ # we don't want to send the secret
51
+ def apply_client_id(params)
52
+ { 'client_id' => id }.merge(params)
53
+ end
54
+
45
55
  # Adds an `Authorization` header with Basic Auth credentials if and only if
46
56
  # it is not already set in the params.
47
57
  def apply_basic_auth(params)
@@ -94,9 +94,10 @@ module OAuth2
94
94
  def request(verb, url, opts = {}) # rubocop:disable CyclomaticComplexity, MethodLength, Metrics/AbcSize
95
95
  connection.response :logger, ::Logger.new($stdout) if ENV['OAUTH_DEBUG'] == 'true'
96
96
 
97
- url = connection.build_url(url, opts[:params]).to_s
97
+ url = connection.build_url(url).to_s
98
98
 
99
99
  response = connection.run_request(verb, url, opts[:body], opts[:headers]) do |req|
100
+ req.params.update(opts[:params]) if opts[:params]
100
101
  yield(req) if block_given?
101
102
  end
102
103
  response = Response.new(response, :parse => opts[:parse])
@@ -130,7 +131,7 @@ module OAuth2
130
131
  # @param [Hash] params a Hash of params for the token endpoint
131
132
  # @param [Hash] access token options, to pass to the AccessToken object
132
133
  # @param [Class] class of access token for easier subclassing OAuth2::AccessToken
133
- # @return [AccessToken] the initalized AccessToken
134
+ # @return [AccessToken] the initialized AccessToken
134
135
  def get_token(params, access_token_opts = {}, access_token_class = AccessToken) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
135
136
  params = Authenticator.new(id, secret, options[:auth_scheme]).apply(params)
136
137
  opts = {:raise_errors => options[:raise_errors], :parse => params.delete(:parse)}
@@ -1,6 +1,6 @@
1
1
  module OAuth2
2
2
  module Version
3
- module_function
3
+ module_function
4
4
 
5
5
  # The major version
6
6
  #
@@ -20,7 +20,7 @@ module OAuth2
20
20
  #
21
21
  # @return [Integer]
22
22
  def patch
23
- 1
23
+ 4
24
24
  end
25
25
 
26
26
  # The pre-release version, if any
@@ -35,10 +35,10 @@ module OAuth2
35
35
  # @return [Hash]
36
36
  def to_h
37
37
  {
38
- :major => major,
39
- :minor => minor,
40
- :patch => patch,
41
- :pre => pre,
38
+ :major => major,
39
+ :minor => minor,
40
+ :patch => patch,
41
+ :pre => pre,
42
42
  }
43
43
  end
44
44
 
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require 'oauth2/version'
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.add_dependency 'faraday', ['>= 0.8', '< 0.16.0']
8
+ spec.add_dependency 'faraday', ['>= 0.8', '< 2.0']
9
9
  spec.add_dependency 'jwt', ['>= 1.0', '< 3.0']
10
10
  spec.add_dependency 'multi_json', '~> 1.3'
11
11
  spec.add_dependency 'multi_xml', '~> 0.5'
@@ -22,6 +22,14 @@ Gem::Specification.new do |spec|
22
22
  spec.summary = 'A Ruby wrapper for the OAuth 2.0 protocol.'
23
23
  spec.version = OAuth2::Version
24
24
 
25
+ spec.metadata = {
26
+ 'bug_tracker_uri' => 'https://github.com/oauth-xx/oauth2/issues',
27
+ 'changelog_uri' => "https://github.com/oauth-xx/oauth2/blob/v#{spec.version}/CHANGELOG.md",
28
+ 'documentation_uri' => "https://www.rubydoc.info/gems/oauth2/#{spec.version}",
29
+ 'source_code_uri' => "https://github.com/oauth-xx/oauth2/tree/v#{spec.version}",
30
+ 'wiki_uri' => 'https://github.com/oauth-xx/oauth2/wiki'
31
+ }
32
+
25
33
  spec.require_paths = %w[lib]
26
34
  spec.bindir = 'exe'
27
35
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
@@ -31,10 +39,14 @@ Gem::Specification.new do |spec|
31
39
 
32
40
  spec.add_development_dependency 'addressable', '~> 2.3'
33
41
  spec.add_development_dependency 'backports', '~> 3.11'
34
- spec.add_development_dependency 'bundler', '~> 1.16'
42
+ spec.add_development_dependency 'bundler', '>= 1.16'
35
43
  spec.add_development_dependency 'coveralls', '~> 0.8'
36
44
  spec.add_development_dependency 'rake', '~> 12.3'
37
45
  spec.add_development_dependency 'rdoc', ['>= 5.0', '< 7']
38
46
  spec.add_development_dependency 'rspec', '~> 3.0'
47
+ spec.add_development_dependency 'rspec-stubbed_env'
48
+ spec.add_development_dependency 'rspec-pending_for'
49
+ spec.add_development_dependency 'rspec-block_is_expected'
50
+ spec.add_development_dependency 'silent_stream'
39
51
  spec.add_development_dependency 'wwtd'
40
52
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauth2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Boling
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2018-10-13 00:00:00.000000000 Z
13
+ date: 2020-02-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0.8'
22
22
  - - "<"
23
23
  - !ruby/object:Gem::Version
24
- version: 0.16.0
24
+ version: '2.0'
25
25
  type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
@@ -31,7 +31,7 @@ dependencies:
31
31
  version: '0.8'
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: 0.16.0
34
+ version: '2.0'
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: jwt
37
37
  requirement: !ruby/object:Gem::Requirement
@@ -132,14 +132,14 @@ dependencies:
132
132
  name: bundler
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - "~>"
135
+ - - ">="
136
136
  - !ruby/object:Gem::Version
137
137
  version: '1.16'
138
138
  type: :development
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - "~>"
142
+ - - ">="
143
143
  - !ruby/object:Gem::Version
144
144
  version: '1.16'
145
145
  - !ruby/object:Gem::Dependency
@@ -204,6 +204,62 @@ dependencies:
204
204
  - - "~>"
205
205
  - !ruby/object:Gem::Version
206
206
  version: '3.0'
207
+ - !ruby/object:Gem::Dependency
208
+ name: rspec-stubbed_env
209
+ requirement: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
214
+ type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - ">="
219
+ - !ruby/object:Gem::Version
220
+ version: '0'
221
+ - !ruby/object:Gem::Dependency
222
+ name: rspec-pending_for
223
+ requirement: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: '0'
228
+ type: :development
229
+ prerelease: false
230
+ version_requirements: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: '0'
235
+ - !ruby/object:Gem::Dependency
236
+ name: rspec-block_is_expected
237
+ requirement: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
242
+ type: :development
243
+ prerelease: false
244
+ version_requirements: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - ">="
247
+ - !ruby/object:Gem::Version
248
+ version: '0'
249
+ - !ruby/object:Gem::Dependency
250
+ name: silent_stream
251
+ requirement: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - ">="
254
+ - !ruby/object:Gem::Version
255
+ version: '0'
256
+ type: :development
257
+ prerelease: false
258
+ version_requirements: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ version: '0'
207
263
  - !ruby/object:Gem::Dependency
208
264
  name: wwtd
209
265
  requirement: !ruby/object:Gem::Requirement
@@ -233,6 +289,7 @@ files:
233
289
  - ".rubocop.yml"
234
290
  - ".rubocop_rspec.yml"
235
291
  - ".rubocop_todo.yml"
292
+ - ".ruby-version"
236
293
  - ".travis.yml"
237
294
  - CHANGELOG.md
238
295
  - CODE_OF_CONDUCT.md
@@ -242,29 +299,21 @@ files:
242
299
  - README.md
243
300
  - Rakefile
244
301
  - gemfiles/jruby_1.7.gemfile
245
- - gemfiles/jruby_1.7.gemfile.lock
246
302
  - gemfiles/jruby_9.0.gemfile
247
303
  - gemfiles/jruby_9.1.gemfile
248
- - gemfiles/jruby_9.1.gemfile.lock
249
304
  - gemfiles/jruby_9.2.gemfile
250
- - gemfiles/jruby_9.2.gemfile.lock
251
305
  - gemfiles/jruby_head.gemfile
252
306
  - gemfiles/ruby_1.9.gemfile
253
- - gemfiles/ruby_1.9.gemfile.lock
254
307
  - gemfiles/ruby_2.0.gemfile
255
- - gemfiles/ruby_2.0.gemfile.lock
256
308
  - gemfiles/ruby_2.1.gemfile
257
- - gemfiles/ruby_2.1.gemfile.lock
258
309
  - gemfiles/ruby_2.2.gemfile
259
- - gemfiles/ruby_2.2.gemfile.lock
260
310
  - gemfiles/ruby_2.3.gemfile
261
- - gemfiles/ruby_2.3.gemfile.lock
262
311
  - gemfiles/ruby_2.4.gemfile
263
- - gemfiles/ruby_2.4.gemfile.lock
264
312
  - gemfiles/ruby_2.5.gemfile
265
- - gemfiles/ruby_2.5.gemfile.lock
313
+ - gemfiles/ruby_2.6.gemfile
314
+ - gemfiles/ruby_2.7.gemfile
266
315
  - gemfiles/ruby_head.gemfile
267
- - gemfiles/ruby_head.gemfile.lock
316
+ - gemfiles/truffleruby.gemfile
268
317
  - lib/oauth2.rb
269
318
  - lib/oauth2/access_token.rb
270
319
  - lib/oauth2/authenticator.rb
@@ -283,7 +332,12 @@ files:
283
332
  homepage: https://github.com/oauth-xx/oauth2
284
333
  licenses:
285
334
  - MIT
286
- metadata: {}
335
+ metadata:
336
+ bug_tracker_uri: https://github.com/oauth-xx/oauth2/issues
337
+ changelog_uri: https://github.com/oauth-xx/oauth2/blob/v1.4.4/CHANGELOG.md
338
+ documentation_uri: https://www.rubydoc.info/gems/oauth2/1.4.4
339
+ source_code_uri: https://github.com/oauth-xx/oauth2/tree/v1.4.4
340
+ wiki_uri: https://github.com/oauth-xx/oauth2/wiki
287
341
  post_install_message:
288
342
  rdoc_options: []
289
343
  require_paths:
@@ -299,8 +353,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
299
353
  - !ruby/object:Gem::Version
300
354
  version: 1.3.5
301
355
  requirements: []
302
- rubyforge_project:
303
- rubygems_version: 2.7.7
356
+ rubygems_version: 3.1.2
304
357
  signing_key:
305
358
  specification_version: 4
306
359
  summary: A Ruby wrapper for the OAuth 2.0 protocol.