oauth2 1.4.8 → 2.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauth2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.8
4
+ version: 2.0.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Boling
8
8
  - Michael Bleigh
9
9
  - Erik Michaels-Ober
10
- autorequire:
10
+ autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2022-02-18 00:00:00.000000000 Z
13
+ date: 2022-06-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '0.8'
21
+ version: 0.17.3
22
22
  - - "<"
23
23
  - !ruby/object:Gem::Version
24
24
  version: '3.0'
@@ -28,7 +28,7 @@ dependencies:
28
28
  requirements:
29
29
  - - ">="
30
30
  - !ruby/object:Gem::Version
31
- version: '0.8'
31
+ version: 0.17.3
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
34
  version: '3.0'
@@ -53,143 +53,143 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: multi_json
56
+ name: multi_xml
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.3'
61
+ version: '0.5'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.3'
68
+ version: '0.5'
69
69
  - !ruby/object:Gem::Dependency
70
- name: multi_xml
70
+ name: rack
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '0.5'
75
+ version: '1.2'
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: '3'
76
79
  type: :runtime
77
80
  prerelease: false
78
81
  version_requirements: !ruby/object:Gem::Requirement
79
82
  requirements:
80
- - - "~>"
83
+ - - ">="
81
84
  - !ruby/object:Gem::Version
82
- version: '0.5'
85
+ version: '1.2'
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: '3'
83
89
  - !ruby/object:Gem::Dependency
84
- name: rack
90
+ name: rash_alt
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
93
  - - ">="
88
94
  - !ruby/object:Gem::Version
89
- version: '1.2'
95
+ version: '0.4'
90
96
  - - "<"
91
97
  - !ruby/object:Gem::Version
92
- version: '3'
98
+ version: '1'
93
99
  type: :runtime
94
100
  prerelease: false
95
101
  version_requirements: !ruby/object:Gem::Requirement
96
102
  requirements:
97
103
  - - ">="
98
104
  - !ruby/object:Gem::Version
99
- version: '1.2'
105
+ version: '0.4'
100
106
  - - "<"
101
107
  - !ruby/object:Gem::Version
102
- version: '3'
108
+ version: '1'
103
109
  - !ruby/object:Gem::Dependency
104
110
  name: addressable
105
111
  requirement: !ruby/object:Gem::Requirement
106
112
  requirements:
107
- - - "~>"
113
+ - - ">="
108
114
  - !ruby/object:Gem::Version
109
- version: '2.3'
115
+ version: '2'
110
116
  type: :development
111
117
  prerelease: false
112
118
  version_requirements: !ruby/object:Gem::Requirement
113
119
  requirements:
114
- - - "~>"
120
+ - - ">="
115
121
  - !ruby/object:Gem::Version
116
- version: '2.3'
122
+ version: '2'
117
123
  - !ruby/object:Gem::Dependency
118
124
  name: backports
119
125
  requirement: !ruby/object:Gem::Requirement
120
126
  requirements:
121
- - - "~>"
127
+ - - ">="
122
128
  - !ruby/object:Gem::Version
123
- version: '3.11'
129
+ version: '3'
124
130
  type: :development
125
131
  prerelease: false
126
132
  version_requirements: !ruby/object:Gem::Requirement
127
133
  requirements:
128
- - - "~>"
134
+ - - ">="
129
135
  - !ruby/object:Gem::Version
130
- version: '3.11'
136
+ version: '3'
131
137
  - !ruby/object:Gem::Dependency
132
138
  name: bundler
133
139
  requirement: !ruby/object:Gem::Requirement
134
140
  requirements:
135
141
  - - ">="
136
142
  - !ruby/object:Gem::Version
137
- version: '1.16'
143
+ version: '2'
138
144
  type: :development
139
145
  prerelease: false
140
146
  version_requirements: !ruby/object:Gem::Requirement
141
147
  requirements:
142
148
  - - ">="
143
149
  - !ruby/object:Gem::Version
144
- version: '1.16'
150
+ version: '2'
145
151
  - !ruby/object:Gem::Dependency
146
152
  name: rake
147
153
  requirement: !ruby/object:Gem::Requirement
148
154
  requirements:
149
- - - "~>"
155
+ - - ">="
150
156
  - !ruby/object:Gem::Version
151
- version: '12.3'
157
+ version: '12'
152
158
  type: :development
153
159
  prerelease: false
154
160
  version_requirements: !ruby/object:Gem::Requirement
155
161
  requirements:
156
- - - "~>"
162
+ - - ">="
157
163
  - !ruby/object:Gem::Version
158
- version: '12.3'
164
+ version: '12'
159
165
  - !ruby/object:Gem::Dependency
160
- name: rdoc
166
+ name: rexml
161
167
  requirement: !ruby/object:Gem::Requirement
162
168
  requirements:
163
169
  - - ">="
164
170
  - !ruby/object:Gem::Version
165
- version: '5.0'
166
- - - "<"
167
- - !ruby/object:Gem::Version
168
- version: '7'
171
+ version: '3'
169
172
  type: :development
170
173
  prerelease: false
171
174
  version_requirements: !ruby/object:Gem::Requirement
172
175
  requirements:
173
176
  - - ">="
174
177
  - !ruby/object:Gem::Version
175
- version: '5.0'
176
- - - "<"
177
- - !ruby/object:Gem::Version
178
- version: '7'
178
+ version: '3'
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: rspec
181
181
  requirement: !ruby/object:Gem::Requirement
182
182
  requirements:
183
- - - "~>"
183
+ - - ">="
184
184
  - !ruby/object:Gem::Version
185
- version: '3.0'
185
+ version: '3'
186
186
  type: :development
187
187
  prerelease: false
188
188
  version_requirements: !ruby/object:Gem::Requirement
189
189
  requirements:
190
- - - "~>"
190
+ - - ">="
191
191
  - !ruby/object:Gem::Version
192
- version: '3.0'
192
+ version: '3'
193
193
  - !ruby/object:Gem::Dependency
194
194
  name: rspec-block_is_expected
195
195
  requirement: !ruby/object:Gem::Requirement
@@ -233,21 +233,21 @@ dependencies:
233
233
  - !ruby/object:Gem::Version
234
234
  version: '0'
235
235
  - !ruby/object:Gem::Dependency
236
- name: silent_stream
236
+ name: rubocop-lts
237
237
  requirement: !ruby/object:Gem::Requirement
238
238
  requirements:
239
- - - ">="
239
+ - - "~>"
240
240
  - !ruby/object:Gem::Version
241
- version: '0'
241
+ version: '8.0'
242
242
  type: :development
243
243
  prerelease: false
244
244
  version_requirements: !ruby/object:Gem::Requirement
245
245
  requirements:
246
- - - ">="
246
+ - - "~>"
247
247
  - !ruby/object:Gem::Version
248
- version: '0'
248
+ version: '8.0'
249
249
  - !ruby/object:Gem::Dependency
250
- name: wwtd
250
+ name: silent_stream
251
251
  requirement: !ruby/object:Gem::Requirement
252
252
  requirements:
253
253
  - - ">="
@@ -270,15 +270,17 @@ extra_rdoc_files: []
270
270
  files:
271
271
  - CHANGELOG.md
272
272
  - CODE_OF_CONDUCT.md
273
+ - CONTRIBUTING.md
273
274
  - LICENSE
274
275
  - README.md
276
+ - SECURITY.md
275
277
  - lib/oauth2.rb
276
278
  - lib/oauth2/access_token.rb
277
279
  - lib/oauth2/authenticator.rb
278
280
  - lib/oauth2/client.rb
279
281
  - lib/oauth2/error.rb
280
- - lib/oauth2/mac_token.rb
281
282
  - lib/oauth2/response.rb
283
+ - lib/oauth2/snaky_hash.rb
282
284
  - lib/oauth2/strategy/assertion.rb
283
285
  - lib/oauth2/strategy/auth_code.rb
284
286
  - lib/oauth2/strategy/base.rb
@@ -286,30 +288,18 @@ files:
286
288
  - lib/oauth2/strategy/implicit.rb
287
289
  - lib/oauth2/strategy/password.rb
288
290
  - lib/oauth2/version.rb
289
- - spec/helper.rb
290
- - spec/oauth2/access_token_spec.rb
291
- - spec/oauth2/authenticator_spec.rb
292
- - spec/oauth2/client_spec.rb
293
- - spec/oauth2/mac_token_spec.rb
294
- - spec/oauth2/response_spec.rb
295
- - spec/oauth2/strategy/assertion_spec.rb
296
- - spec/oauth2/strategy/auth_code_spec.rb
297
- - spec/oauth2/strategy/base_spec.rb
298
- - spec/oauth2/strategy/client_credentials_spec.rb
299
- - spec/oauth2/strategy/implicit_spec.rb
300
- - spec/oauth2/strategy/password_spec.rb
301
- - spec/oauth2/version_spec.rb
302
291
  homepage: https://github.com/oauth-xx/oauth2
303
292
  licenses:
304
293
  - MIT
305
294
  metadata:
295
+ homepage_uri: https://github.com/oauth-xx/oauth2
296
+ source_code_uri: https://github.com/oauth-xx/oauth2/tree/v2.0.0.rc2
297
+ changelog_uri: https://github.com/oauth-xx/oauth2/blob/v2.0.0.rc2/CHANGELOG.md
306
298
  bug_tracker_uri: https://github.com/oauth-xx/oauth2/issues
307
- changelog_uri: https://github.com/oauth-xx/oauth2/blob/v1.4.8/CHANGELOG.md
308
- documentation_uri: https://www.rubydoc.info/gems/oauth2/1.4.8
309
- source_code_uri: https://github.com/oauth-xx/oauth2/tree/v1.4.8
299
+ documentation_uri: https://www.rubydoc.info/gems/oauth2/2.0.0.rc2
310
300
  wiki_uri: https://github.com/oauth-xx/oauth2/wiki
311
301
  rubygems_mfa_required: 'true'
312
- post_install_message:
302
+ post_install_message:
313
303
  rdoc_options: []
314
304
  require_paths:
315
305
  - lib
@@ -317,28 +307,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
317
307
  requirements:
318
308
  - - ">="
319
309
  - !ruby/object:Gem::Version
320
- version: 1.9.0
310
+ version: 2.2.0
321
311
  required_rubygems_version: !ruby/object:Gem::Requirement
322
312
  requirements:
323
- - - ">="
313
+ - - ">"
324
314
  - !ruby/object:Gem::Version
325
- version: 1.3.5
315
+ version: 1.3.1
326
316
  requirements: []
327
- rubygems_version: 3.3.7
328
- signing_key:
317
+ rubygems_version: 3.3.15
318
+ signing_key:
329
319
  specification_version: 4
330
320
  summary: A Ruby wrapper for the OAuth 2.0 protocol.
331
- test_files:
332
- - spec/helper.rb
333
- - spec/oauth2/access_token_spec.rb
334
- - spec/oauth2/authenticator_spec.rb
335
- - spec/oauth2/client_spec.rb
336
- - spec/oauth2/mac_token_spec.rb
337
- - spec/oauth2/response_spec.rb
338
- - spec/oauth2/strategy/assertion_spec.rb
339
- - spec/oauth2/strategy/auth_code_spec.rb
340
- - spec/oauth2/strategy/base_spec.rb
341
- - spec/oauth2/strategy/client_credentials_spec.rb
342
- - spec/oauth2/strategy/implicit_spec.rb
343
- - spec/oauth2/strategy/password_spec.rb
344
- - spec/oauth2/version_spec.rb
321
+ test_files: []
@@ -1,128 +0,0 @@
1
- require 'base64'
2
- require 'digest'
3
- require 'openssl'
4
- require 'securerandom'
5
-
6
- module OAuth2
7
- class MACToken < AccessToken
8
- # Generates a MACToken from an AccessToken and secret
9
- #
10
- # @param [AccessToken] token the OAuth2::Token instance
11
- # @option [String] secret the secret key value
12
- # @param [Hash] opts the options to create the Access Token with
13
- # @see MACToken#initialize
14
- def self.from_access_token(token, secret, options = {})
15
- new(token.client, token.token, secret, token.params.merge(:refresh_token => token.refresh_token, :expires_in => token.expires_in, :expires_at => token.expires_at).merge(options))
16
- end
17
-
18
- attr_reader :secret, :algorithm
19
-
20
- # Initalize a MACToken
21
- #
22
- # @param [Client] client the OAuth2::Client instance
23
- # @param [String] token the Access Token value
24
- # @option [String] secret the secret key value
25
- # @param [Hash] opts the options to create the Access Token with
26
- # @option opts [String] :refresh_token (nil) the refresh_token value
27
- # @option opts [FixNum, String] :expires_in (nil) the number of seconds in which the AccessToken will expire
28
- # @option opts [FixNum, String] :expires_at (nil) the epoch time in seconds in which AccessToken will expire
29
- # @option opts [FixNum, String] :algorithm (hmac-sha-256) the algorithm to use for the HMAC digest (one of 'hmac-sha-256', 'hmac-sha-1')
30
- def initialize(client, token, secret, opts = {})
31
- @secret = secret
32
- self.algorithm = opts.delete(:algorithm) || 'hmac-sha-256'
33
-
34
- super(client, token, opts)
35
- end
36
-
37
- # Make a request with the MAC Token
38
- #
39
- # @param [Symbol] verb the HTTP request method
40
- # @param [String] path the HTTP URL path of the request
41
- # @param [Hash] opts the options to make the request with
42
- # @see Client#request
43
- def request(verb, path, opts = {}, &block)
44
- url = client.connection.build_url(path, opts[:params]).to_s
45
-
46
- opts[:headers] ||= {}
47
- opts[:headers]['Authorization'] = header(verb, url)
48
-
49
- @client.request(verb, path, opts, &block)
50
- end
51
-
52
- # Get the headers hash (always an empty hash)
53
- def headers
54
- {}
55
- end
56
-
57
- # Generate the MAC header
58
- #
59
- # @param [Symbol] verb the HTTP request method
60
- # @param [String] url the HTTP URL path of the request
61
- def header(verb, url)
62
- timestamp = Time.now.utc.to_i
63
- nonce = Digest::MD5.hexdigest([timestamp, SecureRandom.hex].join(':'))
64
-
65
- uri = URI.parse(url)
66
-
67
- raise(ArgumentError, "could not parse \"#{url}\" into URI") unless uri.is_a?(URI::HTTP)
68
-
69
- mac = signature(timestamp, nonce, verb, uri)
70
-
71
- "MAC id=\"#{token}\", ts=\"#{timestamp}\", nonce=\"#{nonce}\", mac=\"#{mac}\""
72
- end
73
-
74
- # Generate the Base64-encoded HMAC digest signature
75
- #
76
- # @param [Fixnum] timestamp the timestamp of the request in seconds since epoch
77
- # @param [String] nonce the MAC header nonce
78
- # @param [Symbol] verb the HTTP request method
79
- # @param [String] url the HTTP URL path of the request
80
- def signature(timestamp, nonce, verb, uri)
81
- signature = [
82
- timestamp,
83
- nonce,
84
- verb.to_s.upcase,
85
- uri.request_uri,
86
- uri.host,
87
- uri.port,
88
- '', nil
89
- ].join("\n")
90
-
91
- strict_encode64(OpenSSL::HMAC.digest(@algorithm, secret, signature))
92
- end
93
-
94
- # Set the HMAC algorithm
95
- #
96
- # @param [String] alg the algorithm to use (one of 'hmac-sha-1', 'hmac-sha-256')
97
- def algorithm=(alg)
98
- @algorithm = case alg.to_s
99
- when 'hmac-sha-1'
100
- begin
101
- OpenSSL::Digest('SHA1').new
102
- rescue StandardError
103
- OpenSSL::Digest.new('SHA1')
104
- end
105
- when 'hmac-sha-256'
106
- begin
107
- OpenSSL::Digest('SHA256').new
108
- rescue StandardError
109
- OpenSSL::Digest.new('SHA256')
110
- end
111
- else
112
- raise(ArgumentError, 'Unsupported algorithm')
113
- end
114
- end
115
-
116
- private
117
-
118
- # No-op since we need the verb and path
119
- # and the MAC always goes in a header
120
- def token=(_noop)
121
- end
122
-
123
- # Base64.strict_encode64 is not available on Ruby 1.8.7
124
- def strict_encode64(str)
125
- Base64.encode64(str).delete("\n")
126
- end
127
- end
128
- end
data/spec/helper.rb DELETED
@@ -1,30 +0,0 @@
1
- DEBUG = ENV['DEBUG'] == 'true'
2
-
3
- ruby_version = Gem::Version.new(RUBY_VERSION)
4
- minimum_version = ->(version) { ruby_version >= Gem::Version.new(version) && RUBY_ENGINE == 'ruby' }
5
- coverage = minimum_version.call('2.7')
6
- debug = minimum_version.call('2.5')
7
-
8
- require 'simplecov' if coverage
9
- require 'byebug' if DEBUG && debug
10
-
11
- require 'oauth2'
12
- require 'addressable/uri'
13
- require 'rspec'
14
- require 'rspec/stubbed_env'
15
- require 'rspec/pending_for'
16
- require 'silent_stream'
17
-
18
- RSpec.configure do |config|
19
- config.expect_with :rspec do |c|
20
- c.syntax = :expect
21
- end
22
- end
23
-
24
- Faraday.default_adapter = :test
25
-
26
- RSpec.configure do |conf|
27
- conf.include SilentStream
28
- end
29
-
30
- VERBS = [:get, :post, :put, :delete].freeze