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.
- checksums.yaml +4 -4
- data/.gitignore +7 -0
- data/.ruby-version +1 -0
- data/.travis.yml +55 -17
- data/CHANGELOG.md +26 -8
- data/Gemfile +1 -2
- data/README.md +39 -12
- data/gemfiles/jruby_1.7.gemfile +6 -6
- data/gemfiles/jruby_9.0.gemfile +2 -8
- data/gemfiles/jruby_9.1.gemfile +0 -14
- data/gemfiles/jruby_9.2.gemfile +0 -14
- data/gemfiles/jruby_head.gemfile +0 -14
- data/gemfiles/ruby_1.9.gemfile +2 -7
- data/gemfiles/ruby_2.0.gemfile +1 -12
- data/gemfiles/ruby_2.1.gemfile +1 -14
- data/gemfiles/ruby_2.2.gemfile +0 -14
- data/gemfiles/ruby_2.3.gemfile +0 -14
- data/gemfiles/ruby_2.4.gemfile +0 -14
- data/gemfiles/ruby_2.5.gemfile +0 -14
- data/gemfiles/ruby_2.6.gemfile +9 -0
- data/gemfiles/ruby_2.7.gemfile +9 -0
- data/gemfiles/ruby_head.gemfile +2 -10
- data/gemfiles/truffleruby.gemfile +3 -0
- data/lib/oauth2/access_token.rb +8 -1
- data/lib/oauth2/authenticator.rb +10 -0
- data/lib/oauth2/client.rb +3 -2
- data/lib/oauth2/version.rb +6 -6
- data/oauth2.gemspec +14 -2
- metadata +73 -20
- data/gemfiles/jruby_1.7.gemfile.lock +0 -81
- data/gemfiles/jruby_9.1.gemfile.lock +0 -112
- data/gemfiles/jruby_9.2.gemfile.lock +0 -112
- data/gemfiles/ruby_1.9.gemfile.lock +0 -85
- data/gemfiles/ruby_2.0.gemfile.lock +0 -90
- data/gemfiles/ruby_2.1.gemfile.lock +0 -109
- data/gemfiles/ruby_2.2.gemfile.lock +0 -108
- data/gemfiles/ruby_2.3.gemfile.lock +0 -108
- data/gemfiles/ruby_2.4.gemfile.lock +0 -108
- data/gemfiles/ruby_2.5.gemfile.lock +0 -108
- data/gemfiles/ruby_head.gemfile.lock +0 -108
data/gemfiles/ruby_2.1.gemfile
CHANGED
@@ -1,19 +1,6 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem 'faraday', '0.
|
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 => '../'
|
data/gemfiles/ruby_2.2.gemfile
CHANGED
@@ -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 => '../'
|
data/gemfiles/ruby_2.3.gemfile
CHANGED
@@ -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 => '../'
|
data/gemfiles/ruby_2.4.gemfile
CHANGED
@@ -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 => '../'
|
data/gemfiles/ruby_2.5.gemfile
CHANGED
@@ -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 => '../'
|
data/gemfiles/ruby_head.gemfile
CHANGED
@@ -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
|
-
|
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 => '../'
|
data/lib/oauth2/access_token.rb
CHANGED
@@ -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
|
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
|
data/lib/oauth2/authenticator.rb
CHANGED
@@ -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)
|
data/lib/oauth2/client.rb
CHANGED
@@ -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
|
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
|
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)}
|
data/lib/oauth2/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module OAuth2
|
2
2
|
module Version
|
3
|
-
|
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
|
-
|
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
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
38
|
+
:major => major,
|
39
|
+
:minor => minor,
|
40
|
+
:patch => patch,
|
41
|
+
:pre => pre,
|
42
42
|
}
|
43
43
|
end
|
44
44
|
|
data/oauth2.gemspec
CHANGED
@@ -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', '<
|
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', '
|
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.
|
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:
|
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:
|
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:
|
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.
|
313
|
+
- gemfiles/ruby_2.6.gemfile
|
314
|
+
- gemfiles/ruby_2.7.gemfile
|
266
315
|
- gemfiles/ruby_head.gemfile
|
267
|
-
- gemfiles/
|
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
|
-
|
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.
|