oauth2 1.4.0 → 2.0.0

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.
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauth2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
+ - Peter Boling
7
8
  - Michael Bleigh
8
9
  - Erik Michaels-Ober
9
10
  autorequire:
10
- bindir: bin
11
+ bindir: exe
11
12
  cert_chain: []
12
- date: 2017-06-09 00:00:00.000000000 Z
13
+ date: 2022-06-21 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: faraday
@@ -17,116 +18,283 @@ dependencies:
17
18
  requirements:
18
19
  - - ">="
19
20
  - !ruby/object:Gem::Version
20
- version: '0.8'
21
+ version: 0.17.3
21
22
  - - "<"
22
23
  - !ruby/object:Gem::Version
23
- version: '0.13'
24
+ version: '3.0'
24
25
  type: :runtime
25
26
  prerelease: false
26
27
  version_requirements: !ruby/object:Gem::Requirement
27
28
  requirements:
28
29
  - - ">="
29
30
  - !ruby/object:Gem::Version
30
- version: '0.8'
31
+ version: 0.17.3
31
32
  - - "<"
32
33
  - !ruby/object:Gem::Version
33
- version: '0.13'
34
+ version: '3.0'
34
35
  - !ruby/object:Gem::Dependency
35
36
  name: jwt
36
37
  requirement: !ruby/object:Gem::Requirement
37
38
  requirements:
38
- - - "~>"
39
+ - - ">="
39
40
  - !ruby/object:Gem::Version
40
41
  version: '1.0'
42
+ - - "<"
43
+ - !ruby/object:Gem::Version
44
+ version: '3.0'
41
45
  type: :runtime
42
46
  prerelease: false
43
47
  version_requirements: !ruby/object:Gem::Requirement
44
48
  requirements:
45
- - - "~>"
49
+ - - ">="
46
50
  - !ruby/object:Gem::Version
47
51
  version: '1.0'
52
+ - - "<"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
48
55
  - !ruby/object:Gem::Dependency
49
- name: multi_json
56
+ name: multi_xml
50
57
  requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
59
  - - "~>"
53
60
  - !ruby/object:Gem::Version
54
- version: '1.3'
61
+ version: '0.5'
55
62
  type: :runtime
56
63
  prerelease: false
57
64
  version_requirements: !ruby/object:Gem::Requirement
58
65
  requirements:
59
66
  - - "~>"
60
67
  - !ruby/object:Gem::Version
61
- version: '1.3'
68
+ version: '0.5'
62
69
  - !ruby/object:Gem::Dependency
63
- name: multi_xml
70
+ name: rack
64
71
  requirement: !ruby/object:Gem::Requirement
65
72
  requirements:
66
- - - "~>"
73
+ - - ">="
67
74
  - !ruby/object:Gem::Version
68
- version: '0.5'
75
+ version: '1.2'
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: '3'
69
79
  type: :runtime
70
80
  prerelease: false
71
81
  version_requirements: !ruby/object:Gem::Requirement
72
82
  requirements:
73
- - - "~>"
83
+ - - ">="
74
84
  - !ruby/object:Gem::Version
75
- version: '0.5'
85
+ version: '1.2'
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: '3'
76
89
  - !ruby/object:Gem::Dependency
77
- name: rack
90
+ name: rash_alt
78
91
  requirement: !ruby/object:Gem::Requirement
79
92
  requirements:
80
93
  - - ">="
81
94
  - !ruby/object:Gem::Version
82
- version: '1.2'
95
+ version: '0.4'
83
96
  - - "<"
84
97
  - !ruby/object:Gem::Version
85
- version: '3'
98
+ version: '1'
86
99
  type: :runtime
87
100
  prerelease: false
88
101
  version_requirements: !ruby/object:Gem::Requirement
89
102
  requirements:
90
103
  - - ">="
91
104
  - !ruby/object:Gem::Version
92
- version: '1.2'
105
+ version: '0.4'
93
106
  - - "<"
107
+ - !ruby/object:Gem::Version
108
+ version: '1'
109
+ - !ruby/object:Gem::Dependency
110
+ name: version_gem
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '1.0'
116
+ type: :runtime
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '1.0'
123
+ - !ruby/object:Gem::Dependency
124
+ name: addressable
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: '2'
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '2'
137
+ - !ruby/object:Gem::Dependency
138
+ name: backports
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '3'
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
94
149
  - !ruby/object:Gem::Version
95
150
  version: '3'
96
151
  - !ruby/object:Gem::Dependency
97
152
  name: bundler
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '2'
158
+ type: :development
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: '2'
165
+ - !ruby/object:Gem::Dependency
166
+ name: rake
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '12'
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '12'
179
+ - !ruby/object:Gem::Dependency
180
+ name: rexml
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '3'
186
+ type: :development
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '3'
193
+ - !ruby/object:Gem::Dependency
194
+ name: rspec
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '3'
200
+ type: :development
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: '3'
207
+ - !ruby/object:Gem::Dependency
208
+ name: rspec-block_is_expected
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-stubbed_env
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: rubocop-lts
98
251
  requirement: !ruby/object:Gem::Requirement
99
252
  requirements:
100
253
  - - "~>"
101
254
  - !ruby/object:Gem::Version
102
- version: '1.0'
255
+ version: '8.0'
103
256
  type: :development
104
257
  prerelease: false
105
258
  version_requirements: !ruby/object:Gem::Requirement
106
259
  requirements:
107
260
  - - "~>"
108
261
  - !ruby/object:Gem::Version
109
- version: '1.0'
262
+ version: '8.0'
263
+ - !ruby/object:Gem::Dependency
264
+ name: silent_stream
265
+ requirement: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - ">="
268
+ - !ruby/object:Gem::Version
269
+ version: '0'
270
+ type: :development
271
+ prerelease: false
272
+ version_requirements: !ruby/object:Gem::Requirement
273
+ requirements:
274
+ - - ">="
275
+ - !ruby/object:Gem::Version
276
+ version: '0'
110
277
  description: A Ruby wrapper for the OAuth 2.0 protocol built with a similar style
111
278
  to the original OAuth spec.
112
279
  email:
113
- - michael@intridea.com
114
- - sferik@gmail.com
280
+ - peter.boling@gmail.com
115
281
  executables: []
116
282
  extensions: []
117
283
  extra_rdoc_files: []
118
284
  files:
119
- - ".document"
285
+ - CHANGELOG.md
286
+ - CODE_OF_CONDUCT.md
120
287
  - CONTRIBUTING.md
121
- - LICENSE.md
288
+ - LICENSE
122
289
  - README.md
290
+ - SECURITY.md
123
291
  - lib/oauth2.rb
124
292
  - lib/oauth2/access_token.rb
125
293
  - lib/oauth2/authenticator.rb
126
294
  - lib/oauth2/client.rb
127
295
  - lib/oauth2/error.rb
128
- - lib/oauth2/mac_token.rb
129
296
  - lib/oauth2/response.rb
297
+ - lib/oauth2/snaky_hash.rb
130
298
  - lib/oauth2/strategy/assertion.rb
131
299
  - lib/oauth2/strategy/auth_code.rb
132
300
  - lib/oauth2/strategy/base.rb
@@ -134,11 +302,17 @@ files:
134
302
  - lib/oauth2/strategy/implicit.rb
135
303
  - lib/oauth2/strategy/password.rb
136
304
  - lib/oauth2/version.rb
137
- - oauth2.gemspec
138
- homepage: http://github.com/intridea/oauth2
305
+ homepage: https://github.com/oauth-xx/oauth2
139
306
  licenses:
140
307
  - MIT
141
- metadata: {}
308
+ metadata:
309
+ homepage_uri: https://github.com/oauth-xx/oauth2
310
+ source_code_uri: https://github.com/oauth-xx/oauth2/tree/v2.0.0
311
+ changelog_uri: https://github.com/oauth-xx/oauth2/blob/v2.0.0/CHANGELOG.md
312
+ bug_tracker_uri: https://github.com/oauth-xx/oauth2/issues
313
+ documentation_uri: https://www.rubydoc.info/gems/oauth2/2.0.0
314
+ wiki_uri: https://github.com/oauth-xx/oauth2/wiki
315
+ rubygems_mfa_required: 'true'
142
316
  post_install_message:
143
317
  rdoc_options: []
144
318
  require_paths:
@@ -147,15 +321,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
147
321
  requirements:
148
322
  - - ">="
149
323
  - !ruby/object:Gem::Version
150
- version: '0'
324
+ version: 2.2.0
151
325
  required_rubygems_version: !ruby/object:Gem::Requirement
152
326
  requirements:
153
327
  - - ">="
154
328
  - !ruby/object:Gem::Version
155
- version: 1.3.5
329
+ version: '0'
156
330
  requirements: []
157
- rubyforge_project:
158
- rubygems_version: 2.6.11
331
+ rubygems_version: 3.3.16
159
332
  signing_key:
160
333
  specification_version: 4
161
334
  summary: A Ruby wrapper for the OAuth 2.0 protocol.
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
data/LICENSE.md DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2011-2013 Michael Bleigh and Intridea, Inc.
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,122 +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 = begin
99
- case alg.to_s
100
- when 'hmac-sha-1'
101
- OpenSSL::Digest::SHA1.new
102
- when 'hmac-sha-256'
103
- OpenSSL::Digest::SHA256.new
104
- else
105
- raise(ArgumentError, 'Unsupported algorithm')
106
- end
107
- end
108
- end
109
-
110
- private
111
-
112
- # No-op since we need the verb and path
113
- # and the MAC always goes in a header
114
- def token=(_)
115
- end
116
-
117
- # Base64.strict_encode64 is not available on Ruby 1.8.7
118
- def strict_encode64(str)
119
- Base64.encode64(str).delete("\n")
120
- end
121
- end
122
- end
data/oauth2.gemspec DELETED
@@ -1,25 +0,0 @@
1
- # coding: utf-8
2
-
3
- lib = File.expand_path('../lib', __FILE__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'oauth2/version'
6
-
7
- Gem::Specification.new do |spec|
8
- spec.add_dependency 'faraday', ['>= 0.8', '< 0.13']
9
- spec.add_dependency 'jwt', '~> 1.0'
10
- spec.add_dependency 'multi_json', '~> 1.3'
11
- spec.add_dependency 'multi_xml', '~> 0.5'
12
- spec.add_dependency 'rack', ['>= 1.2', '< 3']
13
- spec.add_development_dependency 'bundler', '~> 1.0'
14
- spec.authors = ['Michael Bleigh', 'Erik Michaels-Ober']
15
- spec.description = 'A Ruby wrapper for the OAuth 2.0 protocol built with a similar style to the original OAuth spec.'
16
- spec.email = ['michael@intridea.com', 'sferik@gmail.com']
17
- spec.files = %w[.document CONTRIBUTING.md LICENSE.md README.md oauth2.gemspec] + Dir['lib/**/*.rb']
18
- spec.homepage = 'http://github.com/intridea/oauth2'
19
- spec.licenses = %w[MIT]
20
- spec.name = 'oauth2'
21
- spec.require_paths = %w[lib]
22
- spec.required_rubygems_version = '>= 1.3.5'
23
- spec.summary = 'A Ruby wrapper for the OAuth 2.0 protocol.'
24
- spec.version = OAuth2::Version
25
- end