oauth 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of oauth might be problematic. Click here for more details.

Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +12 -2
  3. data/bin/oauth +8 -2
  4. data/lib/oauth.rb +2 -1
  5. data/lib/oauth/cli.rb +32 -360
  6. data/lib/oauth/cli/authorize_command.rb +71 -0
  7. data/lib/oauth/cli/base_command.rb +203 -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 +0 -1
  13. data/lib/oauth/client/em_http.rb +0 -1
  14. data/lib/oauth/client/net_http.rb +0 -1
  15. data/lib/oauth/consumer.rb +26 -3
  16. data/lib/oauth/core_ext.rb +24 -2
  17. data/lib/oauth/helper.rb +10 -6
  18. data/lib/oauth/request_proxy/base.rb +5 -1
  19. data/lib/oauth/version.rb +1 -1
  20. metadata +100 -83
  21. data/test/cases/oauth_case.rb +0 -19
  22. data/test/cases/spec/1_0-final/test_construct_request_url.rb +0 -62
  23. data/test/cases/spec/1_0-final/test_normalize_request_parameters.rb +0 -88
  24. data/test/cases/spec/1_0-final/test_parameter_encodings.rb +0 -86
  25. data/test/cases/spec/1_0-final/test_signature_base_strings.rb +0 -77
  26. data/test/integration/consumer_test.rb +0 -307
  27. data/test/test_access_token.rb +0 -26
  28. data/test/test_action_controller_request_proxy.rb +0 -157
  29. data/test/test_consumer.rb +0 -226
  30. data/test/test_curb_request_proxy.rb +0 -77
  31. data/test/test_em_http_client.rb +0 -80
  32. data/test/test_em_http_request_proxy.rb +0 -115
  33. data/test/test_helper.rb +0 -33
  34. data/test/test_hmac_sha1.rb +0 -20
  35. data/test/test_net_http_client.rb +0 -302
  36. data/test/test_net_http_request_proxy.rb +0 -72
  37. data/test/test_oauth_helper.rb +0 -94
  38. data/test/test_rack_request_proxy.rb +0 -40
  39. data/test/test_request_token.rb +0 -56
  40. data/test/test_rest_client_request_proxy.rb +0 -81
  41. data/test/test_rsa_sha1.rb +0 -59
  42. data/test/test_server.rb +0 -41
  43. data/test/test_signature.rb +0 -15
  44. data/test/test_signature_base.rb +0 -32
  45. data/test/test_signature_hmac_sha1.rb +0 -40
  46. data/test/test_signature_plain_text.rb +0 -31
  47. data/test/test_token.rb +0 -14
  48. data/test/test_typhoeus_request_proxy.rb +0 -101
@@ -13,8 +13,6 @@ end
13
13
 
14
14
  class String
15
15
 
16
-
17
-
18
16
  unless method_defined?(:bytesize)
19
17
  def bytesize
20
18
  self.size
@@ -29,3 +27,27 @@ class String
29
27
  end
30
28
 
31
29
  end
30
+
31
+ # TODO: Work around URI.escape obsolete method
32
+ #
33
+ # 21/May/2016 - We are silencing a warning introduced in 2009
34
+ # https://github.com/ruby/ruby/commit/238b979f1789f95262a267d8df6239806f2859cc
35
+ #
36
+ # The only clear alternative to this problem is to invoke CGI.escape instead
37
+ # but that one does not take a secondary argument so we can pass OAuth::RESERVED_CHARACTERS
38
+ # As of today, ignoring this secondary argument would introduce 44 errors on our tests
39
+ # 181 runs, 511 assertions, 44 failures, 0 errors, 0 skips
40
+ #
41
+ # If you have a proper way to work around this so we don't need to override ruby core code
42
+ # Please send us a Pull Request
43
+ module URI
44
+ module Escape
45
+ def escape(*arg)
46
+ DEFAULT_PARSER.escape(*arg)
47
+ end
48
+
49
+ def unescape(*arg)
50
+ DEFAULT_PARSER.unescape(*arg)
51
+ end
52
+ end
53
+ end
@@ -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.escape(string, OAuth::RESERVED_CHARACTERS)
19
+ end
20
+
21
+ def unescape(value)
22
+ URI.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|
@@ -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)
@@ -1,3 +1,3 @@
1
1
  module OAuth
2
- VERSION = "0.5.1"
2
+ VERSION = "0.5.2"
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.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pelle Braendgaard
@@ -15,110 +15,113 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2016-02-29 00:00:00.000000000 Z
18
+ date: 2017-05-17 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rake
22
22
  requirement: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  type: :development
28
28
  prerelease: false
29
29
  version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: minitest
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  type: :development
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: byebug
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: actionpack
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 4.0.2
68
+ version: '4.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: '4.0'
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: iconv
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  - !ruby/object:Gem::Dependency
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: '1.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: '1.0'
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: rack-test
106
106
  requirement: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  type: :development
112
112
  prerelease: false
113
113
  version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  - !ruby/object:Gem::Dependency
119
119
  name: mocha
120
120
  requirement: !ruby/object:Gem::Requirement
121
121
  requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.9'
122
125
  - - ">="
123
126
  - !ruby/object:Gem::Version
124
127
  version: 0.9.12
@@ -126,6 +129,9 @@ dependencies:
126
129
  prerelease: false
127
130
  version_requirements: !ruby/object:Gem::Requirement
128
131
  requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: '0.9'
129
135
  - - ">="
130
136
  - !ruby/object:Gem::Version
131
137
  version: 0.9.12
@@ -133,6 +139,9 @@ dependencies:
133
139
  name: typhoeus
134
140
  requirement: !ruby/object:Gem::Requirement
135
141
  requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '0.1'
136
145
  - - ">="
137
146
  - !ruby/object:Gem::Version
138
147
  version: 0.1.13
@@ -140,6 +149,9 @@ dependencies:
140
149
  prerelease: false
141
150
  version_requirements: !ruby/object:Gem::Requirement
142
151
  requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '0.1'
143
155
  - - ">="
144
156
  - !ruby/object:Gem::Version
145
157
  version: 0.1.13
@@ -161,14 +173,70 @@ dependencies:
161
173
  name: curb
162
174
  requirement: !ruby/object:Gem::Requirement
163
175
  requirements:
164
- - - ">="
176
+ - - "~>"
165
177
  - !ruby/object:Gem::Version
166
178
  version: '0'
167
179
  type: :development
168
180
  prerelease: false
169
181
  version_requirements: !ruby/object:Gem::Requirement
170
182
  requirements:
171
- - - ">="
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ - !ruby/object:Gem::Dependency
187
+ name: webmock
188
+ requirement: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "<"
191
+ - !ruby/object:Gem::Version
192
+ version: '2.0'
193
+ type: :development
194
+ prerelease: false
195
+ version_requirements: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "<"
198
+ - !ruby/object:Gem::Version
199
+ version: '2.0'
200
+ - !ruby/object:Gem::Dependency
201
+ name: codeclimate-test-reporter
202
+ requirement: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - "~>"
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
207
+ type: :development
208
+ prerelease: false
209
+ version_requirements: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - "~>"
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
214
+ - !ruby/object:Gem::Dependency
215
+ name: simplecov
216
+ requirement: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - "~>"
219
+ - !ruby/object:Gem::Version
220
+ version: '0'
221
+ type: :development
222
+ prerelease: false
223
+ version_requirements: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - "~>"
226
+ - !ruby/object:Gem::Version
227
+ version: '0'
228
+ - !ruby/object:Gem::Dependency
229
+ name: rest-client
230
+ requirement: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - "~>"
233
+ - !ruby/object:Gem::Version
234
+ version: '0'
235
+ type: :development
236
+ prerelease: false
237
+ version_requirements: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - "~>"
172
240
  - !ruby/object:Gem::Version
173
241
  version: '0'
174
242
  description:
@@ -187,6 +255,12 @@ files:
187
255
  - bin/oauth
188
256
  - lib/oauth.rb
189
257
  - lib/oauth/cli.rb
258
+ - lib/oauth/cli/authorize_command.rb
259
+ - lib/oauth/cli/base_command.rb
260
+ - lib/oauth/cli/help_command.rb
261
+ - lib/oauth/cli/query_command.rb
262
+ - lib/oauth/cli/sign_command.rb
263
+ - lib/oauth/cli/version_command.rb
190
264
  - lib/oauth/client.rb
191
265
  - lib/oauth/client/action_controller_request.rb
192
266
  - lib/oauth/client/em_http.rb
@@ -225,35 +299,7 @@ files:
225
299
  - lib/oauth/tokens/server_token.rb
226
300
  - lib/oauth/tokens/token.rb
227
301
  - 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:
302
+ homepage: https://github.com/oauth-xx/oauth-ruby
257
303
  licenses:
258
304
  - MIT
259
305
  metadata: {}
@@ -265,7 +311,7 @@ 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
  - - ">="
@@ -273,37 +319,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
273
319
  version: '0'
274
320
  requirements: []
275
321
  rubyforge_project:
276
- rubygems_version: 2.5.1
322
+ rubygems_version: 2.6.11
277
323
  signing_key:
278
324
  specification_version: 4
279
325
  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:
326
+ test_files: []
@@ -1,19 +0,0 @@
1
- require 'minitest/autorun'
2
- require 'oauth/signature'
3
- require 'oauth/request_proxy/mock_request'
4
-
5
-
6
- class OAuthCase < Minitest::Test
7
- # avoid whining about a lack of tests
8
- def run(*args)
9
- return if @method_name.to_s == "default_test"
10
- super
11
- end
12
-
13
- protected
14
-
15
- # Creates a fake request
16
- def request(params={},method='GET',uri="http://photos.example.net/photos")
17
- OAuth::RequestProxy.proxy({'parameters'=>params,'method'=>method,'uri'=>uri})
18
- end
19
- end