oauth2 1.4.1 → 1.4.4

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