oauth 0.4.7 → 0.5.4

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 (78) hide show
  1. checksums.yaml +7 -0
  2. data/README.rdoc +21 -10
  3. data/bin/oauth +8 -2
  4. data/lib/oauth.rb +3 -5
  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 +4 -0
  15. data/lib/oauth/client/net_http.rb +9 -8
  16. data/lib/oauth/consumer.rb +35 -8
  17. data/lib/oauth/helper.rb +11 -7
  18. data/lib/oauth/request_proxy/action_controller_request.rb +27 -3
  19. data/lib/oauth/request_proxy/action_dispatch_request.rb +7 -0
  20. data/lib/oauth/request_proxy/base.rb +7 -3
  21. data/lib/oauth/request_proxy/net_http.rb +1 -1
  22. data/lib/oauth/request_proxy/rest_client_request.rb +62 -0
  23. data/lib/oauth/request_proxy/typhoeus_request.rb +4 -3
  24. data/lib/oauth/signature/base.rb +9 -23
  25. data/lib/oauth/signature/hmac/sha1.rb +12 -4
  26. data/lib/oauth/signature/plaintext.rb +6 -0
  27. data/lib/oauth/signature/rsa/sha1.rb +7 -3
  28. data/lib/oauth/tokens/access_token.rb +12 -0
  29. data/lib/oauth/tokens/request_token.rb +6 -1
  30. data/lib/oauth/tokens/token.rb +1 -1
  31. data/lib/oauth/version.rb +3 -0
  32. metadata +147 -103
  33. data/.gemtest +0 -0
  34. data/Gemfile +0 -16
  35. data/Gemfile.lock +0 -47
  36. data/HISTORY +0 -173
  37. data/Rakefile +0 -37
  38. data/examples/yql.rb +0 -44
  39. data/lib/digest/hmac.rb +0 -104
  40. data/lib/oauth/core_ext.rb +0 -31
  41. data/lib/oauth/signature/hmac/base.rb +0 -15
  42. data/lib/oauth/signature/hmac/md5.rb +0 -8
  43. data/lib/oauth/signature/hmac/rmd160.rb +0 -8
  44. data/lib/oauth/signature/hmac/sha2.rb +0 -8
  45. data/lib/oauth/signature/md5.rb +0 -13
  46. data/lib/oauth/signature/sha1.rb +0 -13
  47. data/oauth.gemspec +0 -148
  48. data/tasks/deployment.rake +0 -34
  49. data/tasks/environment.rake +0 -7
  50. data/tasks/website.rake +0 -17
  51. data/test/cases/oauth_case.rb +0 -19
  52. data/test/cases/spec/1_0-final/test_construct_request_url.rb +0 -62
  53. data/test/cases/spec/1_0-final/test_normalize_request_parameters.rb +0 -88
  54. data/test/cases/spec/1_0-final/test_parameter_encodings.rb +0 -86
  55. data/test/cases/spec/1_0-final/test_signature_base_strings.rb +0 -77
  56. data/test/integration/consumer_test.rb +0 -307
  57. data/test/keys/rsa.cert +0 -11
  58. data/test/keys/rsa.pem +0 -16
  59. data/test/test_access_token.rb +0 -26
  60. data/test/test_action_controller_request_proxy.rb +0 -133
  61. data/test/test_consumer.rb +0 -220
  62. data/test/test_curb_request_proxy.rb +0 -77
  63. data/test/test_em_http_client.rb +0 -80
  64. data/test/test_em_http_request_proxy.rb +0 -115
  65. data/test/test_helper.rb +0 -28
  66. data/test/test_hmac_sha1.rb +0 -20
  67. data/test/test_net_http_client.rb +0 -292
  68. data/test/test_net_http_request_proxy.rb +0 -72
  69. data/test/test_oauth_helper.rb +0 -94
  70. data/test/test_rack_request_proxy.rb +0 -40
  71. data/test/test_request_token.rb +0 -51
  72. data/test/test_rsa_sha1.rb +0 -59
  73. data/test/test_server.rb +0 -40
  74. data/test/test_signature.rb +0 -22
  75. data/test/test_signature_base.rb +0 -32
  76. data/test/test_signature_plain_text.rb +0 -31
  77. data/test/test_token.rb +0 -14
  78. data/test/test_typhoeus_request_proxy.rb +0 -80
@@ -16,6 +16,12 @@ module OAuth::Signature
16
16
  secret
17
17
  end
18
18
 
19
+ def body_hash
20
+ nil
21
+ end
22
+
23
+ private
24
+
19
25
  def secret
20
26
  super
21
27
  end
@@ -1,10 +1,8 @@
1
1
  require 'oauth/signature/base'
2
- require 'openssl'
3
2
 
4
3
  module OAuth::Signature::RSA
5
4
  class SHA1 < OAuth::Signature::Base
6
5
  implements 'rsa-sha1'
7
- hash_class ::Digest::SHA1
8
6
 
9
7
  def ==(cmp_signature)
10
8
  public_key.verify(OpenSSL::Digest::SHA1.new, Base64.decode64(cmp_signature.is_a?(Array) ? cmp_signature.first : cmp_signature), signature_base_string)
@@ -20,7 +18,11 @@ module OAuth::Signature::RSA
20
18
  end
21
19
  end
22
20
 
23
- private
21
+ def body_hash
22
+ Base64.encode64(OpenSSL::Digest::SHA1.digest(request.body || '')).chomp.gsub(/\n/,'')
23
+ end
24
+
25
+ private
24
26
 
25
27
  def decode_public_key
26
28
  case consumer_secret
@@ -35,6 +37,8 @@ module OAuth::Signature::RSA
35
37
  private_key = OpenSSL::PKey::RSA.new(
36
38
  if options[:private_key_file]
37
39
  IO.read(options[:private_key_file])
40
+ elsif options[:private_key]
41
+ options[:private_key]
38
42
  else
39
43
  consumer_secret
40
44
  end
@@ -59,6 +59,18 @@ module OAuth
59
59
  request(:put, path, body, headers)
60
60
  end
61
61
 
62
+ # Make a regular PATCH request using AccessToken
63
+ #
64
+ # @response = @token.patch('/people/123')
65
+ # @response = @token.patch('/people/123', { :name => 'Bob', :email => 'bob@mailinator.com' })
66
+ # @response = @token.patch('/people/123', { :name => 'Bob', :email => 'bob@mailinator.com' }, { 'Accept' => 'application/xml' })
67
+ # @response = @token.patch('/people/123', nil, { 'Accept' => 'application/xml' })
68
+ # @response = @token.patch('/people/123', @person.to_xml, { 'Accept' => 'application/xml', 'Content-Type' => 'application/xml' })
69
+ #
70
+ def patch(path, body = '', headers = {})
71
+ request(:patch, path, body, headers)
72
+ end
73
+
62
74
  # Make a regular DELETE request using AccessToken
63
75
  #
64
76
  # @response = @token.delete('/people/123')
@@ -5,6 +5,8 @@ module OAuth
5
5
 
6
6
  # Generate an authorization URL for user authorization
7
7
  def authorize_url(params = nil)
8
+ return nil if self.token.nil?
9
+
8
10
  params = (params || {}).merge(:oauth_token => self.token)
9
11
  build_authorize_url(consumer.authorize_url, params)
10
12
  end
@@ -24,8 +26,11 @@ module OAuth
24
26
  # construct an authorization url
25
27
  def build_authorize_url(base_url, params)
26
28
  uri = URI.parse(base_url.to_s)
29
+ queries = {}
30
+ queries = Hash[URI.decode_www_form(uri.query)] if uri.query
27
31
  # TODO doesn't handle array values correctly
28
- uri.query = params.map { |k,v| [k, CGI.escape(v)] * "=" } * "&"
32
+ queries.merge!(params) if params
33
+ uri.query = URI.encode_www_form(queries) if !queries.empty?
29
34
  uri.to_s
30
35
  end
31
36
  end
@@ -11,7 +11,7 @@ module OAuth
11
11
  end
12
12
 
13
13
  def to_query
14
- "oauth_token=#{escape(token)}&oauth_secret=#{escape(secret)}"
14
+ "oauth_token=#{escape(token)}&oauth_token_secret=#{escape(secret)}"
15
15
  end
16
16
  end
17
17
  end
@@ -0,0 +1,3 @@
1
+ module OAuth
2
+ VERSION = "0.5.4"
3
+ end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.7
5
- prerelease:
4
+ version: 0.5.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Pelle Braendgaard
@@ -16,138 +15,220 @@ authors:
16
15
  autorequire:
17
16
  bindir: bin
18
17
  cert_chain: []
19
- date: 2012-09-04 00:00:00.000000000 Z
18
+ date: 2017-12-08 00:00:00.000000000 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: rake
23
22
  requirement: !ruby/object:Gem::Requirement
24
- none: false
25
23
  requirements:
26
- - - ! '>='
24
+ - - ">="
27
25
  - !ruby/object:Gem::Version
28
26
  version: '0'
29
27
  type: :development
30
28
  prerelease: false
31
29
  version_requirements: !ruby/object:Gem::Requirement
32
- none: false
33
30
  requirements:
34
- - - ! '>='
31
+ - - ">="
35
32
  - !ruby/object:Gem::Version
36
33
  version: '0'
37
34
  - !ruby/object:Gem::Dependency
38
- name: jeweler
35
+ name: minitest
39
36
  requirement: !ruby/object:Gem::Requirement
40
- none: false
41
37
  requirements:
42
- - - ! '>='
38
+ - - ">="
43
39
  - !ruby/object:Gem::Version
44
40
  version: '0'
45
41
  type: :development
46
42
  prerelease: false
47
43
  version_requirements: !ruby/object:Gem::Requirement
48
- none: false
49
44
  requirements:
50
- - - ! '>='
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ - !ruby/object:Gem::Dependency
49
+ name: byebug
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
51
60
  - !ruby/object:Gem::Version
52
61
  version: '0'
53
62
  - !ruby/object:Gem::Dependency
54
63
  name: actionpack
55
64
  requirement: !ruby/object:Gem::Requirement
56
- none: false
57
65
  requirements:
58
- - - ! '>='
66
+ - - ">="
59
67
  - !ruby/object:Gem::Version
60
- version: 2.3.5
68
+ version: '5.0'
61
69
  type: :development
62
70
  prerelease: false
63
71
  version_requirements: !ruby/object:Gem::Requirement
64
- none: false
65
72
  requirements:
66
- - - ! '>='
73
+ - - ">="
67
74
  - !ruby/object:Gem::Version
68
- version: 2.3.5
75
+ version: '5.0'
76
+ - !ruby/object:Gem::Dependency
77
+ name: iconv
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
69
90
  - !ruby/object:Gem::Dependency
70
91
  name: rack
71
92
  requirement: !ruby/object:Gem::Requirement
72
- none: false
73
93
  requirements:
74
- - - ! '>='
94
+ - - "~>"
75
95
  - !ruby/object:Gem::Version
76
- version: 1.0.0
96
+ version: '2.0'
77
97
  type: :development
78
98
  prerelease: false
79
99
  version_requirements: !ruby/object:Gem::Requirement
80
- none: false
81
100
  requirements:
82
- - - ! '>='
101
+ - - "~>"
83
102
  - !ruby/object:Gem::Version
84
- version: 1.0.0
103
+ version: '2.0'
104
+ - !ruby/object:Gem::Dependency
105
+ name: rack-test
106
+ requirement: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
85
118
  - !ruby/object:Gem::Dependency
86
119
  name: mocha
87
120
  requirement: !ruby/object:Gem::Requirement
88
- none: false
89
121
  requirements:
90
- - - ! '>='
122
+ - - ">="
91
123
  - !ruby/object:Gem::Version
92
- version: 0.9.8
124
+ version: 0.9.12
93
125
  type: :development
94
126
  prerelease: false
95
127
  version_requirements: !ruby/object:Gem::Requirement
96
- none: false
97
128
  requirements:
98
- - - ! '>='
129
+ - - ">="
99
130
  - !ruby/object:Gem::Version
100
- version: 0.9.8
131
+ version: 0.9.12
101
132
  - !ruby/object:Gem::Dependency
102
133
  name: typhoeus
103
134
  requirement: !ruby/object:Gem::Requirement
104
- none: false
105
135
  requirements:
106
- - - ! '>='
136
+ - - ">="
107
137
  - !ruby/object:Gem::Version
108
138
  version: 0.1.13
109
139
  type: :development
110
140
  prerelease: false
111
141
  version_requirements: !ruby/object:Gem::Requirement
112
- none: false
113
142
  requirements:
114
- - - ! '>='
143
+ - - ">="
115
144
  - !ruby/object:Gem::Version
116
145
  version: 0.1.13
117
146
  - !ruby/object:Gem::Dependency
118
147
  name: em-http-request
119
148
  requirement: !ruby/object:Gem::Requirement
120
- none: false
121
149
  requirements:
122
- - - ! '>='
150
+ - - '='
123
151
  - !ruby/object:Gem::Version
124
- version: 0.2.10
152
+ version: 0.2.11
125
153
  type: :development
126
154
  prerelease: false
127
155
  version_requirements: !ruby/object:Gem::Requirement
128
- none: false
129
156
  requirements:
130
- - - ! '>='
157
+ - - '='
131
158
  - !ruby/object:Gem::Version
132
- version: 0.2.10
159
+ version: 0.2.11
133
160
  - !ruby/object:Gem::Dependency
134
161
  name: curb
135
162
  requirement: !ruby/object:Gem::Requirement
136
- none: false
137
163
  requirements:
138
- - - ! '>='
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: webmock
176
+ requirement: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "<"
179
+ - !ruby/object:Gem::Version
180
+ version: '2.0'
181
+ type: :development
182
+ prerelease: false
183
+ version_requirements: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "<"
186
+ - !ruby/object:Gem::Version
187
+ version: '2.0'
188
+ - !ruby/object:Gem::Dependency
189
+ name: codeclimate-test-reporter
190
+ requirement: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
139
193
  - !ruby/object:Gem::Version
140
- version: 0.6.6.0
194
+ version: '0'
141
195
  type: :development
142
196
  prerelease: false
143
197
  version_requirements: !ruby/object:Gem::Requirement
144
- none: false
145
198
  requirements:
146
- - - ! '>='
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ - !ruby/object:Gem::Dependency
203
+ name: simplecov
204
+ requirement: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
147
207
  - !ruby/object:Gem::Version
148
- version: 0.6.6.0
149
- description: OAuth Core Ruby implementation
150
- email: oauth-ruby@googlegroups.com
208
+ version: '0'
209
+ type: :development
210
+ prerelease: false
211
+ version_requirements: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ - !ruby/object:Gem::Dependency
217
+ name: rest-client
218
+ requirement: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ type: :development
224
+ prerelease: false
225
+ version_requirements: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ description:
231
+ email: oauth-ruby@googlegroupspec.com
151
232
  executables:
152
233
  - oauth
153
234
  extensions: []
@@ -156,26 +237,24 @@ extra_rdoc_files:
156
237
  - README.rdoc
157
238
  - TODO
158
239
  files:
159
- - .gemtest
160
- - Gemfile
161
- - Gemfile.lock
162
- - HISTORY
163
240
  - LICENSE
164
241
  - README.rdoc
165
- - Rakefile
166
242
  - TODO
167
243
  - bin/oauth
168
- - examples/yql.rb
169
- - lib/digest/hmac.rb
170
244
  - lib/oauth.rb
171
245
  - lib/oauth/cli.rb
246
+ - lib/oauth/cli/authorize_command.rb
247
+ - lib/oauth/cli/base_command.rb
248
+ - lib/oauth/cli/help_command.rb
249
+ - lib/oauth/cli/query_command.rb
250
+ - lib/oauth/cli/sign_command.rb
251
+ - lib/oauth/cli/version_command.rb
172
252
  - lib/oauth/client.rb
173
253
  - lib/oauth/client/action_controller_request.rb
174
254
  - lib/oauth/client/em_http.rb
175
255
  - lib/oauth/client/helper.rb
176
256
  - lib/oauth/client/net_http.rb
177
257
  - lib/oauth/consumer.rb
178
- - lib/oauth/core_ext.rb
179
258
  - lib/oauth/errors.rb
180
259
  - lib/oauth/errors/error.rb
181
260
  - lib/oauth/errors/problem.rb
@@ -185,6 +264,7 @@ files:
185
264
  - lib/oauth/oauth_test_helper.rb
186
265
  - lib/oauth/request_proxy.rb
187
266
  - lib/oauth/request_proxy/action_controller_request.rb
267
+ - lib/oauth/request_proxy/action_dispatch_request.rb
188
268
  - lib/oauth/request_proxy/base.rb
189
269
  - lib/oauth/request_proxy/curb_request.rb
190
270
  - lib/oauth/request_proxy/em_http_request.rb
@@ -192,79 +272,43 @@ files:
192
272
  - lib/oauth/request_proxy/mock_request.rb
193
273
  - lib/oauth/request_proxy/net_http.rb
194
274
  - lib/oauth/request_proxy/rack_request.rb
275
+ - lib/oauth/request_proxy/rest_client_request.rb
195
276
  - lib/oauth/request_proxy/typhoeus_request.rb
196
277
  - lib/oauth/server.rb
197
278
  - lib/oauth/signature.rb
198
279
  - lib/oauth/signature/base.rb
199
- - lib/oauth/signature/hmac/base.rb
200
- - lib/oauth/signature/hmac/md5.rb
201
- - lib/oauth/signature/hmac/rmd160.rb
202
280
  - lib/oauth/signature/hmac/sha1.rb
203
- - lib/oauth/signature/hmac/sha2.rb
204
- - lib/oauth/signature/md5.rb
205
281
  - lib/oauth/signature/plaintext.rb
206
282
  - lib/oauth/signature/rsa/sha1.rb
207
- - lib/oauth/signature/sha1.rb
208
283
  - lib/oauth/token.rb
209
284
  - lib/oauth/tokens/access_token.rb
210
285
  - lib/oauth/tokens/consumer_token.rb
211
286
  - lib/oauth/tokens/request_token.rb
212
287
  - lib/oauth/tokens/server_token.rb
213
288
  - lib/oauth/tokens/token.rb
214
- - oauth.gemspec
215
- - tasks/deployment.rake
216
- - tasks/environment.rake
217
- - tasks/website.rake
218
- - test/cases/oauth_case.rb
219
- - test/cases/spec/1_0-final/test_construct_request_url.rb
220
- - test/cases/spec/1_0-final/test_normalize_request_parameters.rb
221
- - test/cases/spec/1_0-final/test_parameter_encodings.rb
222
- - test/cases/spec/1_0-final/test_signature_base_strings.rb
223
- - test/integration/consumer_test.rb
224
- - test/keys/rsa.cert
225
- - test/keys/rsa.pem
226
- - test/test_access_token.rb
227
- - test/test_action_controller_request_proxy.rb
228
- - test/test_consumer.rb
229
- - test/test_curb_request_proxy.rb
230
- - test/test_em_http_client.rb
231
- - test/test_em_http_request_proxy.rb
232
- - test/test_helper.rb
233
- - test/test_hmac_sha1.rb
234
- - test/test_net_http_client.rb
235
- - test/test_net_http_request_proxy.rb
236
- - test/test_oauth_helper.rb
237
- - test/test_rack_request_proxy.rb
238
- - test/test_request_token.rb
239
- - test/test_rsa_sha1.rb
240
- - test/test_server.rb
241
- - test/test_signature.rb
242
- - test/test_signature_base.rb
243
- - test/test_signature_plain_text.rb
244
- - test/test_token.rb
245
- - test/test_typhoeus_request_proxy.rb
289
+ - lib/oauth/version.rb
246
290
  homepage:
247
- licenses: []
291
+ licenses:
292
+ - MIT
293
+ metadata: {}
248
294
  post_install_message:
249
295
  rdoc_options: []
250
296
  require_paths:
251
297
  - lib
252
298
  required_ruby_version: !ruby/object:Gem::Requirement
253
- none: false
254
299
  requirements:
255
- - - ! '>='
300
+ - - ">="
256
301
  - !ruby/object:Gem::Version
257
- version: '0'
302
+ version: '2.0'
258
303
  required_rubygems_version: !ruby/object:Gem::Requirement
259
- none: false
260
304
  requirements:
261
- - - ! '>='
305
+ - - ">="
262
306
  - !ruby/object:Gem::Version
263
307
  version: '0'
264
308
  requirements: []
265
- rubyforge_project: oauth
266
- rubygems_version: 1.8.23
309
+ rubyforge_project:
310
+ rubygems_version: 2.2.2
267
311
  signing_key:
268
- specification_version: 3
312
+ specification_version: 4
269
313
  summary: OAuth Core Ruby implementation
270
314
  test_files: []