oauth 0.5.8 → 1.1.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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +136 -115
  3. data/CODE_OF_CONDUCT.md +0 -0
  4. data/CONTRIBUTING.md +19 -2
  5. data/LICENSE +2 -1
  6. data/README.md +267 -67
  7. data/SECURITY.md +18 -8
  8. data/TODO +0 -0
  9. data/lib/oauth/client/action_controller_request.rb +17 -15
  10. data/lib/oauth/client/em_http.rb +30 -30
  11. data/lib/oauth/client/helper.rb +76 -75
  12. data/lib/oauth/client/net_http.rb +109 -102
  13. data/lib/oauth/client.rb +2 -0
  14. data/lib/oauth/consumer.rb +113 -110
  15. data/lib/oauth/errors/error.rb +2 -0
  16. data/lib/oauth/errors/problem.rb +3 -0
  17. data/lib/oauth/errors/unauthorized.rb +4 -0
  18. data/lib/oauth/errors.rb +2 -0
  19. data/lib/oauth/helper.rb +16 -12
  20. data/lib/oauth/oauth.rb +6 -4
  21. data/lib/oauth/oauth_test_helper.rb +2 -0
  22. data/lib/oauth/request_proxy/action_controller_request.rb +3 -24
  23. data/lib/oauth/request_proxy/action_dispatch_request.rb +0 -0
  24. data/lib/oauth/request_proxy/base.rb +2 -2
  25. data/lib/oauth/request_proxy/curb_request.rb +0 -0
  26. data/lib/oauth/request_proxy/em_http_request.rb +0 -0
  27. data/lib/oauth/request_proxy/jabber_request.rb +0 -0
  28. data/lib/oauth/request_proxy/mock_request.rb +1 -1
  29. data/lib/oauth/request_proxy/net_http.rb +5 -7
  30. data/lib/oauth/request_proxy/rack_request.rb +0 -0
  31. data/lib/oauth/request_proxy/rest_client_request.rb +2 -1
  32. data/lib/oauth/request_proxy/typhoeus_request.rb +0 -0
  33. data/lib/oauth/request_proxy.rb +7 -4
  34. data/lib/oauth/server.rb +12 -10
  35. data/lib/oauth/signature/base.rb +71 -66
  36. data/lib/oauth/signature/hmac/sha1.rb +15 -9
  37. data/lib/oauth/signature/hmac/sha256.rb +15 -9
  38. data/lib/oauth/signature/plaintext.rb +18 -20
  39. data/lib/oauth/signature/rsa/sha1.rb +46 -38
  40. data/lib/oauth/signature.rb +8 -5
  41. data/lib/oauth/token.rb +2 -0
  42. data/lib/oauth/tokens/access_token.rb +2 -0
  43. data/lib/oauth/tokens/consumer_token.rb +4 -2
  44. data/lib/oauth/tokens/request_token.rb +12 -10
  45. data/lib/oauth/tokens/server_token.rb +2 -1
  46. data/lib/oauth/tokens/token.rb +2 -0
  47. data/lib/oauth/version.rb +5 -1
  48. data/lib/oauth.rb +9 -2
  49. metadata +87 -35
  50. data/bin/oauth +0 -11
  51. data/lib/oauth/cli/authorize_command.rb +0 -71
  52. data/lib/oauth/cli/base_command.rb +0 -208
  53. data/lib/oauth/cli/help_command.rb +0 -22
  54. data/lib/oauth/cli/query_command.rb +0 -25
  55. data/lib/oauth/cli/sign_command.rb +0 -81
  56. data/lib/oauth/cli/version_command.rb +0 -7
  57. data/lib/oauth/cli.rb +0 -56
data/lib/oauth.rb CHANGED
@@ -1,5 +1,8 @@
1
- root = File.dirname(__FILE__)
2
- $LOAD_PATH << root unless $LOAD_PATH.include?(root)
1
+ # frozen_string_literal: true
2
+
3
+ # third party gems
4
+ require "snaky_hash"
5
+ require "version_gem"
3
6
 
4
7
  require "oauth/version"
5
8
 
@@ -11,3 +14,7 @@ require "oauth/signature/hmac/sha1"
11
14
  require "oauth/signature/hmac/sha256"
12
15
  require "oauth/signature/rsa/sha1"
13
16
  require "oauth/request_proxy/mock_request"
17
+
18
+ OAuth::Version.class_eval do
19
+ extend VersionGem::Basic
20
+ 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.8
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pelle Braendgaard
@@ -16,36 +16,56 @@ authors:
16
16
  autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
- date: 2021-11-10 00:00:00.000000000 Z
19
+ date: 2022-08-29 00:00:00.000000000 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: actionpack
22
+ name: oauth-tty
23
23
  requirement: !ruby/object:Gem::Requirement
24
24
  requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.0'
25
28
  - - ">="
26
29
  - !ruby/object:Gem::Version
27
- version: '5.0'
28
- type: :development
30
+ version: 1.0.1
31
+ type: :runtime
29
32
  prerelease: false
30
33
  version_requirements: !ruby/object:Gem::Requirement
31
34
  requirements:
35
+ - - "~>"
36
+ - !ruby/object:Gem::Version
37
+ version: '1.0'
32
38
  - - ">="
33
39
  - !ruby/object:Gem::Version
34
- version: '5.0'
40
+ version: 1.0.1
35
41
  - !ruby/object:Gem::Dependency
36
- name: curb
42
+ name: snaky_hash
37
43
  requirement: !ruby/object:Gem::Requirement
38
44
  requirements:
39
- - - ">="
45
+ - - "~>"
40
46
  - !ruby/object:Gem::Version
41
- version: '0'
42
- type: :development
47
+ version: '2.0'
48
+ type: :runtime
43
49
  prerelease: false
44
50
  version_requirements: !ruby/object:Gem::Requirement
45
51
  requirements:
46
- - - ">="
52
+ - - "~>"
47
53
  - !ruby/object:Gem::Version
48
- version: '0'
54
+ version: '2.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: version_gem
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.1'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.1'
49
69
  - !ruby/object:Gem::Dependency
50
70
  name: em-http-request
51
71
  requirement: !ruby/object:Gem::Requirement
@@ -78,16 +98,16 @@ dependencies:
78
98
  name: minitest
79
99
  requirement: !ruby/object:Gem::Requirement
80
100
  requirements:
81
- - - ">="
101
+ - - "~>"
82
102
  - !ruby/object:Gem::Version
83
- version: '0'
103
+ version: 5.15.0
84
104
  type: :development
85
105
  prerelease: false
86
106
  version_requirements: !ruby/object:Gem::Requirement
87
107
  requirements:
88
- - - ">="
108
+ - - "~>"
89
109
  - !ruby/object:Gem::Version
90
- version: '0'
110
+ version: 5.15.0
91
111
  - !ruby/object:Gem::Dependency
92
112
  name: mocha
93
113
  requirement: !ruby/object:Gem::Requirement
@@ -158,6 +178,20 @@ dependencies:
158
178
  - - ">="
159
179
  - !ruby/object:Gem::Version
160
180
  version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rubocop-lts
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '18.0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '18.0'
161
195
  - !ruby/object:Gem::Dependency
162
196
  name: typhoeus
163
197
  requirement: !ruby/object:Gem::Requirement
@@ -178,18 +212,17 @@ dependencies:
178
212
  requirements:
179
213
  - - "<="
180
214
  - !ruby/object:Gem::Version
181
- version: 3.14.0
215
+ version: 3.19.0
182
216
  type: :development
183
217
  prerelease: false
184
218
  version_requirements: !ruby/object:Gem::Requirement
185
219
  requirements:
186
220
  - - "<="
187
221
  - !ruby/object:Gem::Version
188
- version: 3.14.0
222
+ version: 3.19.0
189
223
  description:
190
224
  email: oauth-ruby@googlegroups.com
191
- executables:
192
- - oauth
225
+ executables: []
193
226
  extensions: []
194
227
  extra_rdoc_files:
195
228
  - TODO
@@ -201,15 +234,7 @@ files:
201
234
  - README.md
202
235
  - SECURITY.md
203
236
  - TODO
204
- - bin/oauth
205
237
  - lib/oauth.rb
206
- - lib/oauth/cli.rb
207
- - lib/oauth/cli/authorize_command.rb
208
- - lib/oauth/cli/base_command.rb
209
- - lib/oauth/cli/help_command.rb
210
- - lib/oauth/cli/query_command.rb
211
- - lib/oauth/cli/sign_command.rb
212
- - lib/oauth/cli/version_command.rb
213
238
  - lib/oauth/client.rb
214
239
  - lib/oauth/client/action_controller_request.rb
215
240
  - lib/oauth/client/em_http.rb
@@ -253,12 +278,39 @@ homepage: https://github.com/oauth-xx/oauth-ruby
253
278
  licenses:
254
279
  - MIT
255
280
  metadata:
256
- bug_tracker_uri: https://github.com/oauth-xx/oauth-ruby/issues
257
- changelog_uri: https://github.com/oauth-xx/oauth-ruby/blob/master/CHANGELOG.md
258
- documentation_uri: https://rubydoc.info/github/oauth-xx/oauth-ruby/master
259
281
  homepage_uri: https://github.com/oauth-xx/oauth-ruby
260
- source_code_uri: https://github.com/oauth-xx/oauth-ruby
261
- post_install_message:
282
+ source_code_uri: https://github.com/oauth-xx/oauth-ruby/tree/v1.1.0
283
+ changelog_uri: https://github.com/oauth-xx/oauth-ruby/blob/v1.1.0/CHANGELOG.md
284
+ bug_tracker_uri: https://github.com/oauth-xx/oauth-ruby/issues
285
+ documentation_uri: https://www.rubydoc.info/gems/oauth/1.1.0
286
+ wiki_uri: https://github.com/oauth-xx/oauth-ruby/wiki
287
+ rubygems_mfa_required: 'true'
288
+ post_install_message: |2
289
+
290
+ You have installed oauth version 1.1.0, congratulations!
291
+
292
+ Non-commercial support for the 1.x series will end by April, 2025. Please make a plan to upgrade to the next version prior to that date.
293
+ The only breaking change will be dropped support for Ruby 2.7 and any other versions which will also have reached EOL by then.
294
+
295
+ Please see:
296
+ • https://github.com/oauth-xx/oauth-ruby/blob/main/SECURITY.md
297
+
298
+ Note also that I am, and this project is, in the process of leaving Github.
299
+ I wrote about some of the reasons here:
300
+ • https://dev.to/galtzo/im-leaving-github-50ba
301
+
302
+ If you are a human, please consider a donation as I move toward supporting myself with Open Source work:
303
+ • https://liberapay.com/pboling
304
+ • https://ko-fi.com/pboling
305
+ • https://patreon.com/galtzo
306
+
307
+ If you are a corporation, please consider supporting this project, and open source work generally, with a TideLift subscription.
308
+ • https://tidelift.com/funding/github/rubygems/oauth
309
+ • Or hire me. I am looking for a job!
310
+
311
+ Please report issues, and support the project!
312
+
313
+ Thanks, |7eter l-|. l3oling
262
314
  rdoc_options: []
263
315
  require_paths:
264
316
  - lib
@@ -266,14 +318,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
266
318
  requirements:
267
319
  - - ">="
268
320
  - !ruby/object:Gem::Version
269
- version: '2.0'
321
+ version: '2.7'
270
322
  required_rubygems_version: !ruby/object:Gem::Requirement
271
323
  requirements:
272
324
  - - ">="
273
325
  - !ruby/object:Gem::Version
274
326
  version: '0'
275
327
  requirements: []
276
- rubygems_version: 3.0.3.1
328
+ rubygems_version: 3.3.21
277
329
  signing_key:
278
330
  specification_version: 4
279
331
  summary: OAuth Core Ruby implementation
data/bin/oauth DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require_relative "../lib/oauth"
4
- require "oauth/cli"
5
-
6
- Signal.trap("INT") { puts; exit(1) } # don't dump a backtrace on a ^C
7
-
8
- ARGV << "help" if ARGV.empty?
9
- command = ARGV.shift
10
-
11
- OAuth::CLI.new(STDOUT, STDIN, STDERR, command, ARGV).run
@@ -1,71 +0,0 @@
1
- class OAuth::CLI
2
- class AuthorizeCommand < BaseCommand
3
-
4
- def required_options
5
- [:uri]
6
- end
7
-
8
- def _run
9
- request_token = get_request_token
10
-
11
- if request_token.callback_confirmed?
12
- puts "Server appears to support OAuth 1.0a; enabling support."
13
- options[:version] = "1.0a"
14
- end
15
-
16
- puts "Please visit this url to authorize:"
17
- puts request_token.authorize_url
18
-
19
- # parameters for OAuth 1.0a
20
- oauth_verifier = ask_user_for_verifier
21
-
22
- verbosely_get_access_token(request_token, oauth_verifier)
23
- end
24
-
25
- def get_request_token
26
- consumer = get_consumer
27
- scope_options = options[:scope] ? { "scope" => options[:scope] } : {}
28
- consumer.get_request_token({ :oauth_callback => options[:oauth_callback] }, scope_options)
29
- rescue OAuth::Unauthorized => e
30
- alert "A problem occurred while attempting to authorize:"
31
- alert e
32
- alert e.request.body
33
- end
34
-
35
- def get_consumer
36
- OAuth::Consumer.new \
37
- options[:oauth_consumer_key],
38
- options[:oauth_consumer_secret],
39
- :access_token_url => options[:access_token_url],
40
- :authorize_url => options[:authorize_url],
41
- :request_token_url => options[:request_token_url],
42
- :scheme => options[:scheme],
43
- :http_method => options[:method].to_s.downcase.to_sym
44
- end
45
-
46
-
47
- def ask_user_for_verifier
48
- if options[:version] == "1.0a"
49
- puts "Please enter the verification code provided by the SP (oauth_verifier):"
50
- @stdin.gets.chomp
51
- else
52
- puts "Press return to continue..."
53
- @stdin.gets
54
- nil
55
- end
56
- end
57
-
58
- def verbosely_get_access_token(request_token, oauth_verifier)
59
- access_token = request_token.get_access_token(:oauth_verifier => oauth_verifier)
60
-
61
- puts "Response:"
62
- access_token.params.each do |k,v|
63
- puts " #{k}: #{v}" unless k.is_a?(Symbol)
64
- end
65
- rescue OAuth::Unauthorized => e
66
- alert "A problem occurred while attempting to obtain an access token:"
67
- alert e
68
- alert e.request.body
69
- end
70
- end
71
- end
@@ -1,208 +0,0 @@
1
- class OAuth::CLI
2
- class BaseCommand
3
- def initialize(stdout, stdin, stderr, arguments)
4
- @stdout, @stdin, @stderr = stdout, stdin, stderr
5
-
6
- @options = {}
7
- option_parser.parse!(arguments)
8
- end
9
-
10
- def run
11
- missing = required_options - options.keys
12
- if missing.empty?
13
- _run
14
- else
15
- show_missing(missing)
16
- puts option_parser.help
17
- end
18
- end
19
-
20
- def required_options
21
- []
22
- end
23
-
24
- protected
25
-
26
- attr_reader :options
27
-
28
- def show_missing(array)
29
- array = array.map { |s| "--#{s}" }.join(" ")
30
- OAuth::CLI.puts_red "Options missing to OAuth CLI: #{array}"
31
- end
32
-
33
- def xmpp?
34
- options[:xmpp]
35
- end
36
-
37
- def verbose?
38
- options[:verbose]
39
- end
40
-
41
- def puts(string=nil)
42
- @stdout.puts(string)
43
- end
44
-
45
- def alert(string=nil)
46
- @stderr.puts(string)
47
- end
48
-
49
- def parameters
50
- @parameters ||= begin
51
- escaped_pairs = options[:params].collect do |pair|
52
- if pair =~ /:/
53
- Hash[*pair.split(":", 2)].collect do |k,v|
54
- [CGI.escape(k.strip), CGI.escape(v.strip)] * "="
55
- end
56
- else
57
- pair
58
- end
59
- end
60
-
61
- querystring = escaped_pairs * "&"
62
- cli_params = CGI.parse(querystring)
63
-
64
- {
65
- "oauth_consumer_key" => options[:oauth_consumer_key],
66
- "oauth_nonce" => options[:oauth_nonce],
67
- "oauth_timestamp" => options[:oauth_timestamp],
68
- "oauth_token" => options[:oauth_token],
69
- "oauth_signature_method" => options[:oauth_signature_method],
70
- "oauth_version" => options[:oauth_version]
71
- }.reject { |_k,v| v.nil? || v == "" }.merge(cli_params)
72
- end
73
- end
74
-
75
- def option_parser
76
- @option_parser ||= OptionParser.new do |opts|
77
- opts.banner = "Usage: oauth <command> [ARGS]"
78
-
79
- _option_parser_defaults
80
- _option_parser_common(opts)
81
- _option_parser_sign_and_query(opts)
82
- _option_parser_authorization(opts)
83
- end
84
- end
85
-
86
- def _option_parser_defaults
87
- options[:oauth_nonce] = OAuth::Helper.generate_key
88
- options[:oauth_signature_method] = "HMAC-SHA1"
89
- options[:oauth_timestamp] = OAuth::Helper.generate_timestamp
90
- options[:oauth_version] = "1.0"
91
- options[:method] = :post
92
- options[:params] = []
93
- options[:scheme] = :header
94
- options[:version] = "1.0"
95
- end
96
-
97
- def _option_parser_common(opts)
98
- ## Common Options
99
-
100
- opts.on("-B", "--body", "Use the request body for OAuth parameters.") do
101
- options[:scheme] = :body
102
- end
103
-
104
- opts.on("--consumer-key KEY", "Specifies the consumer key to use.") do |v|
105
- options[:oauth_consumer_key] = v
106
- end
107
-
108
- opts.on("--consumer-secret SECRET", "Specifies the consumer secret to use.") do |v|
109
- options[:oauth_consumer_secret] = v
110
- end
111
-
112
- opts.on("-H", "--header", "Use the 'Authorization' header for OAuth parameters (default).") do
113
- options[:scheme] = :header
114
- end
115
-
116
- opts.on("-Q", "--query-string", "Use the query string for OAuth parameters.") do
117
- options[:scheme] = :query_string
118
- end
119
-
120
- opts.on("-O", "--options FILE", "Read options from a file") do |v|
121
- arguments = open(v).readlines.map { |l| l.chomp.split(" ") }.flatten
122
- options2 = parse_options(arguments)
123
- options.merge!(options2)
124
- end
125
- end
126
-
127
- def _option_parser_sign_and_query(opts)
128
- opts.separator("\n options for signing and querying")
129
-
130
- opts.on("--method METHOD", "Specifies the method (e.g. GET) to use when signing.") do |v|
131
- options[:method] = v
132
- end
133
-
134
- opts.on("--nonce NONCE", "Specifies the nonce to use.") do |v|
135
- options[:oauth_nonce] = v
136
- end
137
-
138
- opts.on("--parameters PARAMS", "Specifies the parameters to use when signing.") do |v|
139
- options[:params] << v
140
- end
141
-
142
- opts.on("--signature-method METHOD", "Specifies the signature method to use; defaults to HMAC-SHA1.") do |v|
143
- options[:oauth_signature_method] = v
144
- end
145
-
146
- opts.on("--token TOKEN", "Specifies the token to use.") do |v|
147
- options[:oauth_token] = v
148
- end
149
-
150
- opts.on("--secret SECRET", "Specifies the token secret to use.") do |v|
151
- options[:oauth_token_secret] = v
152
- end
153
-
154
- opts.on("--timestamp TIMESTAMP", "Specifies the timestamp to use.") do |v|
155
- options[:oauth_timestamp] = v
156
- end
157
-
158
- opts.on("--realm REALM", "Specifies the realm to use.") do |v|
159
- options[:realm] = v
160
- end
161
-
162
- opts.on("--uri URI", "Specifies the URI to use when signing.") do |v|
163
- options[:uri] = v
164
- end
165
-
166
- opts.on("--version [VERSION]", "Specifies the OAuth version to use.") do |v|
167
- options[:oauth_version] = v
168
- end
169
-
170
- opts.on("--no-version", "Omit oauth_version.") do
171
- options[:oauth_version] = nil
172
- end
173
-
174
- opts.on("--xmpp", "Generate XMPP stanzas.") do
175
- options[:xmpp] = true
176
- options[:method] ||= "iq"
177
- end
178
-
179
- opts.on("-v", "--verbose", "Be verbose.") do
180
- options[:verbose] = true
181
- end
182
- end
183
-
184
- def _option_parser_authorization(opts)
185
- opts.separator("\n options for authorization")
186
-
187
- opts.on("--access-token-url URL", "Specifies the access token URL.") do |v|
188
- options[:access_token_url] = v
189
- end
190
-
191
- opts.on("--authorize-url URL", "Specifies the authorization URL.") do |v|
192
- options[:authorize_url] = v
193
- end
194
-
195
- opts.on("--callback-url URL", "Specifies a callback URL.") do |v|
196
- options[:oauth_callback] = v
197
- end
198
-
199
- opts.on("--request-token-url URL", "Specifies the request token URL.") do |v|
200
- options[:request_token_url] = v
201
- end
202
-
203
- opts.on("--scope SCOPE", "Specifies the scope (Google-specific).") do |v|
204
- options[:scope] = v
205
- end
206
- end
207
- end
208
- end
@@ -1,22 +0,0 @@
1
- class OAuth::CLI
2
- class HelpCommand < BaseCommand
3
- def run
4
- puts <<-EOT
5
- Usage: oauth COMMAND [ARGS]
6
-
7
- Available oauth commands are:
8
- a, authorize Obtain an access token and secret for a user
9
- q, query Query a protected resource
10
- s, sign Generate an OAuth signature
11
-
12
- In addition to those, there are:
13
- v, version Displays the current version of the library (or --version, -v)
14
- h, help Displays this help (or --help, -h)
15
-
16
- Tip: All commands can be run without args for specific help.
17
-
18
-
19
- EOT
20
- end
21
- end
22
- end
@@ -1,25 +0,0 @@
1
- class OAuth::CLI
2
- class QueryCommand < BaseCommand
3
- extend OAuth::Helper
4
-
5
- def required_options
6
- [:oauth_consumer_key, :oauth_consumer_secret, :oauth_token, :oauth_token_secret]
7
- end
8
-
9
- def _run
10
- consumer = OAuth::Consumer.new(options[:oauth_consumer_key], options[:oauth_consumer_secret], scheme: options[:scheme])
11
-
12
- access_token = OAuth::AccessToken.new(consumer, options[:oauth_token], options[:oauth_token_secret])
13
-
14
- # append params to the URL
15
- uri = URI.parse(options[:uri])
16
- params = parameters.map { |k,v| Array(v).map { |v2| "#{OAuth::Helper.escape(k)}=#{OAuth::Helper.escape(v2)}" } * "&" }
17
- uri.query = [uri.query, *params].reject { |x| x.nil? } * "&"
18
- puts uri.to_s
19
-
20
- response = access_token.request(options[:method].to_s.downcase.to_sym, uri.to_s)
21
- puts "#{response.code} #{response.message}"
22
- puts response.body
23
- end
24
- end
25
- end
@@ -1,81 +0,0 @@
1
- class OAuth::CLI
2
- class SignCommand < BaseCommand
3
-
4
- def required_options
5
- [:oauth_consumer_key, :oauth_consumer_secret, :oauth_token, :oauth_token_secret]
6
- end
7
-
8
- def _run
9
- request = OAuth::RequestProxy.proxy \
10
- "method" => options[:method],
11
- "uri" => options[:uri],
12
- "parameters" => parameters
13
-
14
- if verbose?
15
- puts_verbose_parameters(request)
16
- end
17
-
18
- request.sign! \
19
- :consumer_secret => options[:oauth_consumer_secret],
20
- :token_secret => options[:oauth_token_secret]
21
-
22
- if verbose?
23
- puts_verbose_request(request)
24
- else
25
- puts request.oauth_signature
26
- end
27
- end
28
-
29
- def puts_verbose_parameters(request)
30
- puts "OAuth parameters:"
31
- request.oauth_parameters.each do |k,v|
32
- puts " " + [k, v] * ": "
33
- end
34
- puts
35
-
36
- if request.non_oauth_parameters.any?
37
- puts "Parameters:"
38
- request.non_oauth_parameters.each do |k,v|
39
- puts " " + [k, v] * ": "
40
- end
41
- puts
42
- end
43
- end
44
-
45
- def puts_verbose_request(request)
46
- puts "Method: #{request.method}"
47
- puts "URI: #{request.uri}"
48
- puts "Normalized params: #{request.normalized_parameters}" unless options[:xmpp]
49
- puts "Signature base string: #{request.signature_base_string}"
50
-
51
- if xmpp?
52
- puts
53
- puts "XMPP Stanza:"
54
- puts xmpp_output(request)
55
- puts
56
- puts "Note: You may want to use bare JIDs in your URI."
57
- puts
58
- else
59
- puts "OAuth Request URI: #{request.signed_uri}"
60
- puts "Request URI: #{request.signed_uri(false)}"
61
- puts "Authorization header: #{request.oauth_header(:realm => options[:realm])}"
62
- end
63
- puts "Signature: #{request.oauth_signature}"
64
- puts "Escaped signature: #{OAuth::Helper.escape(request.oauth_signature)}"
65
- end
66
-
67
- def xmpp_output(request)
68
- <<-EOS
69
- <oauth xmlns='urn:xmpp:oauth:0'>
70
- <oauth_consumer_key>#{request.oauth_consumer_key}</oauth_consumer_key>
71
- <oauth_token>#{request.oauth_token}</oauth_token>
72
- <oauth_signature_method>#{request.oauth_signature_method}</oauth_signature_method>
73
- <oauth_signature>#{request.oauth_signature}</oauth_signature>
74
- <oauth_timestamp>#{request.oauth_timestamp}</oauth_timestamp>
75
- <oauth_nonce>#{request.oauth_nonce}</oauth_nonce>
76
- <oauth_version>#{request.oauth_version}</oauth_version>
77
- </oauth>
78
- EOS
79
- end
80
- end
81
- end
@@ -1,7 +0,0 @@
1
- class OAuth::CLI
2
- class VersionCommand < BaseCommand
3
- def run
4
- puts "OAuth Gem #{OAuth::VERSION}"
5
- end
6
- end
7
- end