oauth 0.5.1 → 0.5.6

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.
Files changed (53) hide show
  1. checksums.yaml +5 -5
  2. data/README.rdoc +22 -9
  3. data/bin/oauth +8 -2
  4. data/lib/oauth.rb +3 -2
  5. data/lib/oauth/cli.rb +37 -359
  6. data/lib/oauth/cli/authorize_command.rb +71 -0
  7. data/lib/oauth/cli/base_command.rb +208 -0
  8. data/lib/oauth/cli/help_command.rb +22 -0
  9. data/lib/oauth/cli/query_command.rb +25 -0
  10. data/lib/oauth/cli/sign_command.rb +81 -0
  11. data/lib/oauth/cli/version_command.rb +7 -0
  12. data/lib/oauth/client/action_controller_request.rb +1 -1
  13. data/lib/oauth/client/em_http.rb +0 -1
  14. data/lib/oauth/client/helper.rb +8 -2
  15. data/lib/oauth/client/net_http.rb +0 -1
  16. data/lib/oauth/consumer.rb +70 -14
  17. data/lib/oauth/helper.rb +10 -6
  18. data/lib/oauth/request_proxy/action_controller_request.rb +6 -2
  19. data/lib/oauth/request_proxy/action_dispatch_request.rb +7 -0
  20. data/lib/oauth/request_proxy/base.rb +5 -1
  21. data/lib/oauth/signature/hmac/sha256.rb +17 -0
  22. data/lib/oauth/tokens/request_token.rb +10 -3
  23. data/lib/oauth/version.rb +1 -1
  24. metadata +88 -72
  25. data/lib/oauth/core_ext.rb +0 -31
  26. data/test/cases/oauth_case.rb +0 -19
  27. data/test/cases/spec/1_0-final/test_construct_request_url.rb +0 -62
  28. data/test/cases/spec/1_0-final/test_normalize_request_parameters.rb +0 -88
  29. data/test/cases/spec/1_0-final/test_parameter_encodings.rb +0 -86
  30. data/test/cases/spec/1_0-final/test_signature_base_strings.rb +0 -77
  31. data/test/integration/consumer_test.rb +0 -307
  32. data/test/test_access_token.rb +0 -26
  33. data/test/test_action_controller_request_proxy.rb +0 -157
  34. data/test/test_consumer.rb +0 -226
  35. data/test/test_curb_request_proxy.rb +0 -77
  36. data/test/test_em_http_client.rb +0 -80
  37. data/test/test_em_http_request_proxy.rb +0 -115
  38. data/test/test_helper.rb +0 -33
  39. data/test/test_hmac_sha1.rb +0 -20
  40. data/test/test_net_http_client.rb +0 -302
  41. data/test/test_net_http_request_proxy.rb +0 -72
  42. data/test/test_oauth_helper.rb +0 -94
  43. data/test/test_rack_request_proxy.rb +0 -40
  44. data/test/test_request_token.rb +0 -56
  45. data/test/test_rest_client_request_proxy.rb +0 -81
  46. data/test/test_rsa_sha1.rb +0 -59
  47. data/test/test_server.rb +0 -41
  48. data/test/test_signature.rb +0 -15
  49. data/test/test_signature_base.rb +0 -32
  50. data/test/test_signature_hmac_sha1.rb +0 -40
  51. data/test/test_signature_plain_text.rb +0 -31
  52. data/test/test_token.rb +0 -14
  53. data/test/test_typhoeus_request_proxy.rb +0 -101
@@ -1,5 +1,4 @@
1
1
  require 'oauth/helper'
2
- require 'oauth/client/helper'
3
2
  require 'oauth/request_proxy/net_http'
4
3
 
5
4
  class Net::HTTPGenericRequest
@@ -8,11 +8,21 @@ require 'cgi'
8
8
  module OAuth
9
9
  class Consumer
10
10
  # determine the certificate authority path to verify SSL certs
11
- CA_FILES = %W(#{ENV['SSL_CERT_FILE']} /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt /usr/share/curl/curl-ca-bundle.crt)
12
- CA_FILES.each do |ca_file|
13
- if File.exist?(ca_file)
14
- CA_FILE = ca_file
15
- break
11
+ if ENV['SSL_CERT_FILE']
12
+ if File.exist?(ENV['SSL_CERT_FILE'])
13
+ CA_FILE = ENV['SSL_CERT_FILE']
14
+ else
15
+ raise "The SSL CERT provided does not exist."
16
+ end
17
+ end
18
+
19
+ if !defined?(CA_FILE)
20
+ CA_FILES = %W(/etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt /usr/share/curl/curl-ca-bundle.crt)
21
+ CA_FILES.each do |ca_file|
22
+ if File.exist?(ca_file)
23
+ CA_FILE = ca_file
24
+ break
25
+ end
16
26
  end
17
27
  end
18
28
  CA_FILE = nil unless defined?(CA_FILE)
@@ -23,6 +33,7 @@ module OAuth
23
33
 
24
34
  # default paths on site. These are the same as the defaults set up by the generators
25
35
  :request_token_path => '/oauth/request_token',
36
+ :authenticate_path => '/oauth/authenticate',
26
37
  :authorize_path => '/oauth/authorize',
27
38
  :access_token_path => '/oauth/access_token',
28
39
 
@@ -43,6 +54,13 @@ module OAuth
43
54
  # Add a custom ca_file for consumer
44
55
  # :ca_file => '/etc/certs.pem'
45
56
 
57
+ # Possible values:
58
+ #
59
+ # nil, false - no debug output
60
+ # true - uses $stdout
61
+ # some_value - uses some_value
62
+ :debug_output => nil,
63
+
46
64
  :oauth_version => "1.0"
47
65
  }
48
66
 
@@ -87,6 +105,18 @@ module OAuth
87
105
  @http_method ||= @options[:http_method] || :post
88
106
  end
89
107
 
108
+ def debug_output
109
+ @debug_output ||= begin
110
+ case @options[:debug_output]
111
+ when nil, false
112
+ when true
113
+ $stdout
114
+ else
115
+ @options[:debug_output]
116
+ end
117
+ end
118
+ end
119
+
90
120
  # The HTTP object for the site. The HTTP Object is what you get when you do Net::HTTP.new
91
121
  def http
92
122
  @http ||= create_http
@@ -210,8 +240,15 @@ module OAuth
210
240
  end
211
241
  when (300..399)
212
242
  # this is a redirect
213
- uri = URI.parse(response.header['location'])
214
- response.error! if uri.path == path # careful of those infinite redirects
243
+ uri = URI.parse(response['location'])
244
+ our_uri = URI.parse(site)
245
+
246
+ if uri.path == path && our_uri.host != uri.host
247
+ options[:site] = "#{uri.scheme}://#{uri.host}"
248
+ @http = create_http
249
+ end
250
+
251
+ response.error! if uri.path == path && our_uri.host == uri.host # careful of those infinite redirects
215
252
  self.token_request(http_method, uri.path, token, request_options, arguments)
216
253
  when (400..499)
217
254
  raise OAuth::Unauthorized, response
@@ -247,6 +284,10 @@ module OAuth
247
284
  @options[:request_token_path]
248
285
  end
249
286
 
287
+ def authenticate_path
288
+ @options[:authenticate_path]
289
+ end
290
+
250
291
  def authorize_path
251
292
  @options[:authorize_path]
252
293
  end
@@ -264,6 +305,14 @@ module OAuth
264
305
  @options.has_key?(:request_token_url)
265
306
  end
266
307
 
308
+ def authenticate_url
309
+ @options[:authenticate_url] || site + authenticate_path
310
+ end
311
+
312
+ def authenticate_url?
313
+ @options.has_key?(:authenticate_url)
314
+ end
315
+
267
316
  def authorize_url
268
317
  @options[:authorize_url] || site + authorize_path
269
318
  end
@@ -311,16 +360,21 @@ module OAuth
311
360
 
312
361
  http_object.use_ssl = (our_uri.scheme == 'https')
313
362
 
314
- if @options[:ca_file] || CA_FILE
315
- http_object.ca_file = @options[:ca_file] || CA_FILE
363
+ if @options[:no_verify]
364
+ http_object.verify_mode = OpenSSL::SSL::VERIFY_NONE
365
+ else
366
+ ca_file = @options[:ca_file] || CA_FILE
367
+ if ca_file
368
+ http_object.ca_file = ca_file
369
+ end
316
370
  http_object.verify_mode = OpenSSL::SSL::VERIFY_PEER
317
371
  http_object.verify_depth = 5
318
- else
319
- http_object.verify_mode = OpenSSL::SSL::VERIFY_NONE
320
372
  end
321
373
 
322
- http_object.read_timeout = http_object.open_timeout = @options[:timeout] || 30
374
+ http_object.read_timeout = http_object.open_timeout = @options[:timeout] || 60
323
375
  http_object.open_timeout = @options[:open_timeout] if @options[:open_timeout]
376
+ http_object.ssl_version = @options[:ssl_version] if @options[:ssl_version]
377
+ http_object.set_debug_output(debug_output) if debug_output
324
378
 
325
379
  http_object
326
380
  end
@@ -334,8 +388,10 @@ module OAuth
334
388
  end
335
389
 
336
390
  # if the base site contains a path, add it now
337
- uri = URI.parse(site)
338
- path = uri.path + path if uri.path && uri.path != '/'
391
+ # only add if the site host matches the current http object's host
392
+ # (in case we've specified a full url for token requests)
393
+ uri = URI.parse(site)
394
+ path = uri.path + path if uri.path && uri.path != '/' && uri.host == http.address
339
395
 
340
396
  headers = arguments.first.is_a?(Hash) ? arguments.shift : {}
341
397
 
data/lib/oauth/helper.rb CHANGED
@@ -9,9 +9,17 @@ module OAuth
9
9
  #
10
10
  # See Also: {OAuth core spec version 1.0, section 5.1}[http://oauth.net/core/1.0#rfc.section.5.1]
11
11
  def escape(value)
12
- URI::escape(value.to_s.to_str, OAuth::RESERVED_CHARACTERS)
12
+ _escape(value.to_s.to_str)
13
13
  rescue ArgumentError
14
- URI::escape(value.to_s.to_str.force_encoding(Encoding::UTF_8), OAuth::RESERVED_CHARACTERS)
14
+ _escape(value.to_s.to_str.force_encoding(Encoding::UTF_8))
15
+ end
16
+
17
+ def _escape(string)
18
+ URI::DEFAULT_PARSER.escape(string, OAuth::RESERVED_CHARACTERS)
19
+ end
20
+
21
+ def unescape(value)
22
+ URI::DEFAULT_PARSER.unescape(value.gsub('+', '%2B'))
15
23
  end
16
24
 
17
25
  # Generate a random key of up to +size+ bytes. The value returned is Base64 encoded with non-word
@@ -94,10 +102,6 @@ module OAuth
94
102
  Hash[*params.flatten]
95
103
  end
96
104
 
97
- def unescape(value)
98
- URI.unescape(value.gsub('+', '%2B'))
99
- end
100
-
101
105
  def stringify_keys(hash)
102
106
  new_h = {}
103
107
  hash.each do |k, v|
@@ -23,7 +23,7 @@ then # rails 3.x
23
23
  ActionDispatch::Request::HTTP_METHOD_LOOKUP["patch"] = :patch
24
24
  end
25
25
 
26
- else # rails 4.x - already has patch
26
+ else # rails 4.x and later - already has patch
27
27
  require 'action_dispatch/http/request'
28
28
  end
29
29
 
@@ -60,7 +60,7 @@ module OAuth::RequestProxy
60
60
  params << header_params.to_query
61
61
  params << request.query_string unless query_string_blank?
62
62
 
63
- if request.post? && request.content_type.to_s.downcase.start_with?("application/x-www-form-urlencoded")
63
+ if raw_post_signature?
64
64
  params << request.raw_post
65
65
  end
66
66
  end
@@ -72,6 +72,10 @@ module OAuth::RequestProxy
72
72
  reject { |kv| kv[0] == 'oauth_signature'}
73
73
  end
74
74
 
75
+ def raw_post_signature?
76
+ (request.post? || request.put?) && request.content_type.to_s.downcase.start_with?("application/x-www-form-urlencoded")
77
+ end
78
+
75
79
  protected
76
80
 
77
81
  def query_params
@@ -0,0 +1,7 @@
1
+ require 'oauth/request_proxy/rack_request'
2
+
3
+ module OAuth::RequestProxy
4
+ class ActionDispatchRequest < OAuth::RequestProxy::RackRequest
5
+ proxies ActionDispatch::Request
6
+ end
7
+ end
@@ -76,7 +76,7 @@ module OAuth::RequestProxy
76
76
  end
77
77
 
78
78
  def parameters_for_signature
79
- parameters.reject { |k,v| k == "oauth_signature" || unsigned_parameters.include?(k)}
79
+ parameters.select { |k,v| not signature_and_unsigned_parameters.include?(k) }
80
80
  end
81
81
 
82
82
  def oauth_parameters
@@ -87,6 +87,10 @@ module OAuth::RequestProxy
87
87
  parameters.reject { |k,v| OAuth::PARAMETERS.include?(k) }
88
88
  end
89
89
 
90
+ def signature_and_unsigned_parameters
91
+ unsigned_parameters+["oauth_signature"]
92
+ end
93
+
90
94
  # See 9.1.2 in specs
91
95
  def normalized_uri
92
96
  u = URI.parse(uri)
@@ -0,0 +1,17 @@
1
+ require 'oauth/signature/base'
2
+
3
+ module OAuth::Signature::HMAC
4
+ class SHA256 < OAuth::Signature::Base
5
+ implements 'hmac-sha256'
6
+
7
+ def body_hash
8
+ Base64.encode64(OpenSSL::Digest::SHA256.digest(request.body || '')).chomp.gsub(/\n/,'')
9
+ end
10
+
11
+ private
12
+
13
+ def digest
14
+ OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), secret, signature_base_string)
15
+ end
16
+ end
17
+ end
@@ -8,7 +8,14 @@ module OAuth
8
8
  return nil if self.token.nil?
9
9
 
10
10
  params = (params || {}).merge(:oauth_token => self.token)
11
- build_authorize_url(consumer.authorize_url, params)
11
+ build_url(consumer.authorize_url, params)
12
+ end
13
+
14
+ def authenticate_url(params = nil)
15
+ return nil if self.token.nil?
16
+
17
+ params = (params || {}).merge(:oauth_token => self.token)
18
+ build_url(consumer.authenticate_url, params)
12
19
  end
13
20
 
14
21
  def callback_confirmed?
@@ -23,8 +30,8 @@ module OAuth
23
30
 
24
31
  protected
25
32
 
26
- # construct an authorization url
27
- def build_authorize_url(base_url, params)
33
+ # construct an authorization or authentication url
34
+ def build_url(base_url, params)
28
35
  uri = URI.parse(base_url.to_s)
29
36
  queries = {}
30
37
  queries = Hash[URI.decode_www_form(uri.query)] if uri.query
data/lib/oauth/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module OAuth
2
- VERSION = "0.5.1"
2
+ VERSION = "0.5.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pelle Braendgaard
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2016-02-29 00:00:00.000000000 Z
18
+ date: 2021-04-02 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rake
@@ -65,14 +65,14 @@ dependencies:
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 4.0.2
68
+ version: '5.0'
69
69
  type: :development
70
70
  prerelease: false
71
71
  version_requirements: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 4.0.2
75
+ version: '5.0'
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: iconv
78
78
  requirement: !ruby/object:Gem::Requirement
@@ -91,16 +91,16 @@ dependencies:
91
91
  name: rack
92
92
  requirement: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '2.0'
97
97
  type: :development
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '2.0'
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: rack-test
106
106
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +122,9 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: 0.9.12
125
+ - - "<="
126
+ - !ruby/object:Gem::Version
127
+ version: 1.1.0
125
128
  type: :development
126
129
  prerelease: false
127
130
  version_requirements: !ruby/object:Gem::Requirement
@@ -129,6 +132,9 @@ dependencies:
129
132
  - - ">="
130
133
  - !ruby/object:Gem::Version
131
134
  version: 0.9.12
135
+ - - "<="
136
+ - !ruby/object:Gem::Version
137
+ version: 1.1.0
132
138
  - !ruby/object:Gem::Dependency
133
139
  name: typhoeus
134
140
  requirement: !ruby/object:Gem::Requirement
@@ -171,6 +177,62 @@ dependencies:
171
177
  - - ">="
172
178
  - !ruby/object:Gem::Version
173
179
  version: '0'
180
+ - !ruby/object:Gem::Dependency
181
+ name: webmock
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "<"
185
+ - !ruby/object:Gem::Version
186
+ version: '2.0'
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "<"
192
+ - !ruby/object:Gem::Version
193
+ version: '2.0'
194
+ - !ruby/object:Gem::Dependency
195
+ name: codeclimate-test-reporter
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ type: :development
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ - !ruby/object:Gem::Dependency
209
+ name: simplecov
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ - !ruby/object:Gem::Dependency
223
+ name: rest-client
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - ">="
227
+ - !ruby/object:Gem::Version
228
+ version: '0'
229
+ type: :development
230
+ prerelease: false
231
+ version_requirements: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - ">="
234
+ - !ruby/object:Gem::Version
235
+ version: '0'
174
236
  description:
175
237
  email: oauth-ruby@googlegroupspec.com
176
238
  executables:
@@ -187,13 +249,18 @@ files:
187
249
  - bin/oauth
188
250
  - lib/oauth.rb
189
251
  - lib/oauth/cli.rb
252
+ - lib/oauth/cli/authorize_command.rb
253
+ - lib/oauth/cli/base_command.rb
254
+ - lib/oauth/cli/help_command.rb
255
+ - lib/oauth/cli/query_command.rb
256
+ - lib/oauth/cli/sign_command.rb
257
+ - lib/oauth/cli/version_command.rb
190
258
  - lib/oauth/client.rb
191
259
  - lib/oauth/client/action_controller_request.rb
192
260
  - lib/oauth/client/em_http.rb
193
261
  - lib/oauth/client/helper.rb
194
262
  - lib/oauth/client/net_http.rb
195
263
  - lib/oauth/consumer.rb
196
- - lib/oauth/core_ext.rb
197
264
  - lib/oauth/errors.rb
198
265
  - lib/oauth/errors/error.rb
199
266
  - lib/oauth/errors/problem.rb
@@ -203,6 +270,7 @@ files:
203
270
  - lib/oauth/oauth_test_helper.rb
204
271
  - lib/oauth/request_proxy.rb
205
272
  - lib/oauth/request_proxy/action_controller_request.rb
273
+ - lib/oauth/request_proxy/action_dispatch_request.rb
206
274
  - lib/oauth/request_proxy/base.rb
207
275
  - lib/oauth/request_proxy/curb_request.rb
208
276
  - lib/oauth/request_proxy/em_http_request.rb
@@ -216,6 +284,7 @@ files:
216
284
  - lib/oauth/signature.rb
217
285
  - lib/oauth/signature/base.rb
218
286
  - lib/oauth/signature/hmac/sha1.rb
287
+ - lib/oauth/signature/hmac/sha256.rb
219
288
  - lib/oauth/signature/plaintext.rb
220
289
  - lib/oauth/signature/rsa/sha1.rb
221
290
  - lib/oauth/token.rb
@@ -225,38 +294,15 @@ files:
225
294
  - lib/oauth/tokens/server_token.rb
226
295
  - lib/oauth/tokens/token.rb
227
296
  - lib/oauth/version.rb
228
- - test/cases/oauth_case.rb
229
- - test/cases/spec/1_0-final/test_construct_request_url.rb
230
- - test/cases/spec/1_0-final/test_normalize_request_parameters.rb
231
- - test/cases/spec/1_0-final/test_parameter_encodings.rb
232
- - test/cases/spec/1_0-final/test_signature_base_strings.rb
233
- - test/integration/consumer_test.rb
234
- - test/test_access_token.rb
235
- - test/test_action_controller_request_proxy.rb
236
- - test/test_consumer.rb
237
- - test/test_curb_request_proxy.rb
238
- - test/test_em_http_client.rb
239
- - test/test_em_http_request_proxy.rb
240
- - test/test_helper.rb
241
- - test/test_hmac_sha1.rb
242
- - test/test_net_http_client.rb
243
- - test/test_net_http_request_proxy.rb
244
- - test/test_oauth_helper.rb
245
- - test/test_rack_request_proxy.rb
246
- - test/test_request_token.rb
247
- - test/test_rest_client_request_proxy.rb
248
- - test/test_rsa_sha1.rb
249
- - test/test_server.rb
250
- - test/test_signature.rb
251
- - test/test_signature_base.rb
252
- - test/test_signature_hmac_sha1.rb
253
- - test/test_signature_plain_text.rb
254
- - test/test_token.rb
255
- - test/test_typhoeus_request_proxy.rb
256
- homepage:
297
+ homepage: https://github.com/oauth-xx/oauth-ruby
257
298
  licenses:
258
299
  - MIT
259
- metadata: {}
300
+ metadata:
301
+ bug_tracker_uri: https://github.com/oauth-xx/oauth-ruby/issues
302
+ changelog_uri: https://github.com/oauth-xx/oauth-ruby/blob/master/HISTORY
303
+ documentation_uri: https://rdoc.info/github/oauth-xx/oauth-ruby/master/frames
304
+ homepage_uri: https://github.com/oauth-xx/oauth-ruby
305
+ source_code_uri: https://github.com/oauth-xx/oauth-ruby
260
306
  post_install_message:
261
307
  rdoc_options: []
262
308
  require_paths:
@@ -265,45 +311,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
265
311
  requirements:
266
312
  - - ">="
267
313
  - !ruby/object:Gem::Version
268
- version: '0'
314
+ version: '2.0'
269
315
  required_rubygems_version: !ruby/object:Gem::Requirement
270
316
  requirements:
271
317
  - - ">="
272
318
  - !ruby/object:Gem::Version
273
319
  version: '0'
274
320
  requirements: []
275
- rubyforge_project:
276
- rubygems_version: 2.5.1
321
+ rubygems_version: 3.0.3
277
322
  signing_key:
278
323
  specification_version: 4
279
324
  summary: OAuth Core Ruby implementation
280
- test_files:
281
- - test/test_rsa_sha1.rb
282
- - test/test_helper.rb
283
- - test/test_server.rb
284
- - test/test_em_http_client.rb
285
- - test/test_signature_hmac_sha1.rb
286
- - test/test_signature.rb
287
- - test/test_em_http_request_proxy.rb
288
- - test/test_net_http_client.rb
289
- - test/test_rest_client_request_proxy.rb
290
- - test/cases/oauth_case.rb
291
- - test/cases/spec/1_0-final/test_parameter_encodings.rb
292
- - test/cases/spec/1_0-final/test_signature_base_strings.rb
293
- - test/cases/spec/1_0-final/test_normalize_request_parameters.rb
294
- - test/cases/spec/1_0-final/test_construct_request_url.rb
295
- - test/test_hmac_sha1.rb
296
- - test/test_consumer.rb
297
- - test/test_rack_request_proxy.rb
298
- - test/test_signature_base.rb
299
- - test/test_typhoeus_request_proxy.rb
300
- - test/integration/consumer_test.rb
301
- - test/test_signature_plain_text.rb
302
- - test/test_curb_request_proxy.rb
303
- - test/test_token.rb
304
- - test/test_action_controller_request_proxy.rb
305
- - test/test_oauth_helper.rb
306
- - test/test_access_token.rb
307
- - test/test_request_token.rb
308
- - test/test_net_http_request_proxy.rb
309
- has_rdoc:
325
+ test_files: []