oauth 0.5.8 → 0.5.9

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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +37 -116
  3. data/CODE_OF_CONDUCT.md +0 -0
  4. data/CONTRIBUTING.md +0 -0
  5. data/LICENSE +0 -0
  6. data/README.md +13 -9
  7. data/SECURITY.md +0 -0
  8. data/TODO +0 -0
  9. data/lib/oauth/cli/authorize_command.rb +8 -10
  10. data/lib/oauth/cli/base_command.rb +8 -6
  11. data/lib/oauth/cli/help_command.rb +0 -0
  12. data/lib/oauth/cli/query_command.rb +3 -3
  13. data/lib/oauth/cli/sign_command.rb +12 -15
  14. data/lib/oauth/cli/version_command.rb +0 -0
  15. data/lib/oauth/cli.rb +2 -2
  16. data/lib/oauth/client/action_controller_request.rb +14 -15
  17. data/lib/oauth/client/em_http.rb +28 -28
  18. data/lib/oauth/client/helper.rb +14 -17
  19. data/lib/oauth/client/net_http.rb +27 -27
  20. data/lib/oauth/client.rb +0 -0
  21. data/lib/oauth/consumer.rb +52 -62
  22. data/lib/oauth/errors/error.rb +0 -0
  23. data/lib/oauth/errors/problem.rb +0 -0
  24. data/lib/oauth/errors/unauthorized.rb +0 -0
  25. data/lib/oauth/errors.rb +0 -0
  26. data/lib/oauth/helper.rb +7 -7
  27. data/lib/oauth/oauth.rb +4 -4
  28. data/lib/oauth/oauth_test_helper.rb +0 -0
  29. data/lib/oauth/request_proxy/action_controller_request.rb +0 -0
  30. data/lib/oauth/request_proxy/action_dispatch_request.rb +0 -0
  31. data/lib/oauth/request_proxy/base.rb +3 -3
  32. data/lib/oauth/request_proxy/curb_request.rb +0 -0
  33. data/lib/oauth/request_proxy/em_http_request.rb +0 -0
  34. data/lib/oauth/request_proxy/jabber_request.rb +0 -0
  35. data/lib/oauth/request_proxy/mock_request.rb +0 -0
  36. data/lib/oauth/request_proxy/net_http.rb +2 -2
  37. data/lib/oauth/request_proxy/rack_request.rb +0 -0
  38. data/lib/oauth/request_proxy/rest_client_request.rb +2 -2
  39. data/lib/oauth/request_proxy/typhoeus_request.rb +0 -0
  40. data/lib/oauth/request_proxy.rb +3 -3
  41. data/lib/oauth/server.rb +8 -10
  42. data/lib/oauth/signature/base.rb +3 -4
  43. data/lib/oauth/signature/hmac/sha1.rb +1 -1
  44. data/lib/oauth/signature/hmac/sha256.rb +1 -1
  45. data/lib/oauth/signature/plaintext.rb +0 -0
  46. data/lib/oauth/signature/rsa/sha1.rb +3 -3
  47. data/lib/oauth/signature.rb +5 -5
  48. data/lib/oauth/token.rb +0 -0
  49. data/lib/oauth/tokens/access_token.rb +0 -0
  50. data/lib/oauth/tokens/consumer_token.rb +2 -2
  51. data/lib/oauth/tokens/request_token.rb +7 -8
  52. data/lib/oauth/tokens/server_token.rb +0 -1
  53. data/lib/oauth/tokens/token.rb +0 -0
  54. data/lib/oauth/version.rb +1 -1
  55. data/lib/oauth.rb +0 -0
  56. metadata +8 -7
@@ -1,23 +1,20 @@
1
1
  class OAuth::CLI
2
2
  class SignCommand < BaseCommand
3
-
4
3
  def required_options
5
- [:oauth_consumer_key, :oauth_consumer_secret, :oauth_token, :oauth_token_secret]
4
+ %i[oauth_consumer_key oauth_consumer_secret oauth_token oauth_token_secret]
6
5
  end
7
6
 
8
7
  def _run
9
8
  request = OAuth::RequestProxy.proxy \
10
- "method" => options[:method],
11
- "uri" => options[:uri],
12
- "parameters" => parameters
9
+ "method" => options[:method],
10
+ "uri" => options[:uri],
11
+ "parameters" => parameters
13
12
 
14
- if verbose?
15
- puts_verbose_parameters(request)
16
- end
13
+ puts_verbose_parameters(request) if verbose?
17
14
 
18
15
  request.sign! \
19
- :consumer_secret => options[:oauth_consumer_secret],
20
- :token_secret => options[:oauth_token_secret]
16
+ consumer_secret: options[:oauth_consumer_secret],
17
+ token_secret: options[:oauth_token_secret]
21
18
 
22
19
  if verbose?
23
20
  puts_verbose_request(request)
@@ -28,15 +25,15 @@ class OAuth::CLI
28
25
 
29
26
  def puts_verbose_parameters(request)
30
27
  puts "OAuth parameters:"
31
- request.oauth_parameters.each do |k,v|
32
- puts " " + [k, v] * ": "
28
+ request.oauth_parameters.each do |k, v|
29
+ puts " " + [k, v].join(": ")
33
30
  end
34
31
  puts
35
32
 
36
33
  if request.non_oauth_parameters.any?
37
34
  puts "Parameters:"
38
- request.non_oauth_parameters.each do |k,v|
39
- puts " " + [k, v] * ": "
35
+ request.non_oauth_parameters.each do |k, v|
36
+ puts " " + [k, v].join(": ")
40
37
  end
41
38
  puts
42
39
  end
@@ -58,7 +55,7 @@ class OAuth::CLI
58
55
  else
59
56
  puts "OAuth Request URI: #{request.signed_uri}"
60
57
  puts "Request URI: #{request.signed_uri(false)}"
61
- puts "Authorization header: #{request.oauth_header(:realm => options[:realm])}"
58
+ puts "Authorization header: #{request.oauth_header(realm: options[:realm])}"
62
59
  end
63
60
  puts "Signature: #{request.oauth_signature}"
64
61
  puts "Escaped signature: #{OAuth::Helper.escape(request.oauth_signature)}"
File without changes
data/lib/oauth/cli.rb CHANGED
@@ -18,8 +18,8 @@ module OAuth
18
18
  "v" => "version",
19
19
  "q" => "query",
20
20
  "a" => "authorize",
21
- "s" => "sign",
22
- }
21
+ "s" => "sign"
22
+ }.freeze
23
23
 
24
24
  def initialize(stdout, stdin, stderr, command, arguments)
25
25
  klass = get_command_class(parse_command(command))
@@ -10,12 +10,12 @@ end
10
10
  module ActionController
11
11
  class Base
12
12
  if defined? ActionDispatch
13
- def process_with_new_base_test(request, response=nil)
13
+ def process_with_new_base_test(request, response = nil)
14
14
  request.apply_oauth! if request.respond_to?(:apply_oauth!)
15
15
  super(request, response)
16
16
  end
17
17
  else
18
- def process_with_oauth(request, response=nil)
18
+ def process_with_oauth(request, response = nil)
19
19
  request.apply_oauth! if request.respond_to?(:apply_oauth!)
20
20
  process_without_oauth(request, response)
21
21
  end
@@ -24,8 +24,8 @@ module ActionController
24
24
  end
25
25
 
26
26
  class TestRequest
27
- def self.use_oauth=(bool)
28
- @use_oauth = bool
27
+ class << self
28
+ attr_writer :use_oauth
29
29
  end
30
30
 
31
31
  def self.use_oauth?
@@ -33,21 +33,21 @@ module ActionController
33
33
  end
34
34
 
35
35
  def configure_oauth(consumer = nil, token = nil, options = {})
36
- @oauth_options = { :consumer => consumer,
37
- :token => token,
38
- :scheme => "header",
39
- :signature_method => nil,
40
- :nonce => nil,
41
- :timestamp => nil }.merge(options)
36
+ @oauth_options = { consumer: consumer,
37
+ token: token,
38
+ scheme: "header",
39
+ signature_method: nil,
40
+ nonce: nil,
41
+ timestamp: nil }.merge(options)
42
42
  end
43
43
 
44
44
  def apply_oauth!
45
45
  return unless ActionController::TestRequest.use_oauth? && @oauth_options
46
46
 
47
- @oauth_helper = OAuth::Client::Helper.new(self, @oauth_options.merge(:request_uri => (respond_to?(:fullpath) ? fullpath : request_uri)))
47
+ @oauth_helper = OAuth::Client::Helper.new(self, @oauth_options.merge(request_uri: (respond_to?(:fullpath) ? fullpath : request_uri)))
48
48
  @oauth_helper.amend_user_agent_header(env)
49
49
 
50
- self.send("set_oauth_#{@oauth_options[:scheme]}")
50
+ send("set_oauth_#{@oauth_options[:scheme]}")
51
51
  end
52
52
 
53
53
  def set_oauth_header
@@ -56,10 +56,9 @@ module ActionController
56
56
 
57
57
  def set_oauth_parameters
58
58
  @query_parameters = @oauth_helper.parameters_with_oauth
59
- @query_parameters.merge!(:oauth_signature => @oauth_helper.signature)
59
+ @query_parameters.merge!(oauth_signature: @oauth_helper.signature)
60
60
  end
61
61
 
62
- def set_oauth_query_string
63
- end
62
+ def set_oauth_query_string; end
64
63
  end
65
64
  end
@@ -23,16 +23,16 @@ module EventMachine
23
23
  #
24
24
  # See Also: {OAuth core spec version 1.0, section 5.4.1}[http://oauth.net/core/1.0#rfc.section.5.4.1]
25
25
  def oauth!(http, consumer = nil, token = nil, options = {})
26
- options = { :request_uri => normalized_oauth_uri(http),
27
- :consumer => consumer,
28
- :token => token,
29
- :scheme => "header",
30
- :signature_method => nil,
31
- :nonce => nil,
32
- :timestamp => nil }.merge(options)
26
+ options = { request_uri: normalized_oauth_uri(http),
27
+ consumer: consumer,
28
+ token: token,
29
+ scheme: "header",
30
+ signature_method: nil,
31
+ nonce: nil,
32
+ timestamp: nil }.merge(options)
33
33
 
34
34
  @oauth_helper = OAuth::Client::Helper.new(self, options)
35
- self.__send__(:"set_oauth_#{options[:scheme]}")
35
+ __send__(:"set_oauth_#{options[:scheme]}")
36
36
  end
37
37
 
38
38
  # Create a string suitable for signing for an HTTP request. This process involves parameter
@@ -49,13 +49,13 @@ module EventMachine
49
49
  #
50
50
  # See Also: {OAuth core spec version 1.0, section 9.1.1}[http://oauth.net/core/1.0#rfc.section.9.1.1]
51
51
  def signature_base_string(http, consumer = nil, token = nil, options = {})
52
- options = { :request_uri => normalized_oauth_uri(http),
53
- :consumer => consumer,
54
- :token => token,
55
- :scheme => "header",
56
- :signature_method => nil,
57
- :nonce => nil,
58
- :timestamp => nil }.merge(options)
52
+ options = { request_uri: normalized_oauth_uri(http),
53
+ consumer: consumer,
54
+ token: token,
55
+ scheme: "header",
56
+ signature_method: nil,
57
+ nonce: nil,
58
+ timestamp: nil }.merge(options)
59
59
 
60
60
  OAuth::Client::Helper.new(self, options).signature_base_string
61
61
  end
@@ -77,13 +77,13 @@ module EventMachine
77
77
  protected
78
78
 
79
79
  def combine_query(path, query, uri_query)
80
- combined_query = if query.kind_of?(Hash)
81
- query.map { |k, v| encode_param(k, v) }.join("&")
82
- else
83
- query.to_s
80
+ combined_query = if query.is_a?(Hash)
81
+ query.map { |k, v| encode_param(k, v) }.join("&")
82
+ else
83
+ query.to_s
84
84
  end
85
- if !uri_query.to_s.empty?
86
- combined_query = [combined_query, uri_query].reject {|part| part.empty?}.join("&")
85
+ unless uri_query.to_s.empty?
86
+ combined_query = [combined_query, uri_query].reject(&:empty?).join("&")
87
87
  end
88
88
  combined_query.to_s.empty? ? path : "#{path}?#{combined_query}"
89
89
  end
@@ -95,17 +95,17 @@ module EventMachine
95
95
  uri.host = http.address
96
96
  uri.port = http.port
97
97
 
98
- if http.respond_to?(:use_ssl?) && http.use_ssl?
99
- uri.scheme = "https"
100
- else
101
- uri.scheme = "http"
102
- end
98
+ uri.scheme = if http.respond_to?(:use_ssl?) && http.use_ssl?
99
+ "https"
100
+ else
101
+ "http"
102
+ end
103
103
  uri.to_s
104
104
  end
105
105
 
106
106
  def set_oauth_header
107
- self.req[:head] ||= {}
108
- self.req[:head].merge!("Authorization" => @oauth_helper.header)
107
+ req[:head] ||= {}
108
+ req[:head].merge!("Authorization" => @oauth_helper.header)
109
109
  end
110
110
 
111
111
  def set_oauth_body
@@ -14,9 +14,7 @@ module OAuth::Client
14
14
  @options[:signature_method] ||= "HMAC-SHA1"
15
15
  end
16
16
 
17
- def options
18
- @options
19
- end
17
+ attr_reader :options
20
18
 
21
19
  def nonce
22
20
  options[:nonce] ||= generate_key
@@ -40,26 +38,25 @@ module OAuth::Client
40
38
  "oauth_session_handle" => options[:oauth_session_handle]
41
39
  }
42
40
  allowed_empty_params = options[:allow_empty_params]
43
- if allowed_empty_params != true && !allowed_empty_params.kind_of?(Array)
41
+ if allowed_empty_params != true && !allowed_empty_params.is_a?(Array)
44
42
  allowed_empty_params = allowed_empty_params == false ? [] : [allowed_empty_params]
45
43
  end
46
- out.select! { |k,v| v.to_s != "" || allowed_empty_params == true || allowed_empty_params.include?(k) }
44
+ out.select! { |k, v| v.to_s != "" || allowed_empty_params == true || allowed_empty_params.include?(k) }
47
45
  out
48
46
  end
49
47
 
50
48
  def signature(extra_options = {})
51
- OAuth::Signature.sign(@request, { :uri => options[:request_uri],
52
- :consumer => options[:consumer],
53
- :token => options[:token],
54
- :unsigned_parameters => options[:unsigned_parameters]
55
- }.merge(extra_options) )
49
+ OAuth::Signature.sign(@request, { uri: options[:request_uri],
50
+ consumer: options[:consumer],
51
+ token: options[:token],
52
+ unsigned_parameters: options[:unsigned_parameters] }.merge(extra_options))
56
53
  end
57
54
 
58
55
  def signature_base_string(extra_options = {})
59
- OAuth::Signature.signature_base_string(@request, { :uri => options[:request_uri],
60
- :consumer => options[:consumer],
61
- :token => options[:token],
62
- :parameters => oauth_parameters}.merge(extra_options) )
56
+ OAuth::Signature.signature_base_string(@request, { uri: options[:request_uri],
57
+ consumer: options[:consumer],
58
+ token: options[:token],
59
+ parameters: oauth_parameters }.merge(extra_options))
63
60
  end
64
61
 
65
62
  def token_request?
@@ -67,7 +64,7 @@ module OAuth::Client
67
64
  end
68
65
 
69
66
  def hash_body
70
- @options[:body_hash] = OAuth::Signature.body_hash(@request, :parameters => oauth_parameters)
67
+ @options[:body_hash] = OAuth::Signature.body_hash(@request, parameters: oauth_parameters)
71
68
  end
72
69
 
73
70
  def amend_user_agent_header(headers)
@@ -82,9 +79,9 @@ module OAuth::Client
82
79
 
83
80
  def header
84
81
  parameters = oauth_parameters
85
- parameters.merge!("oauth_signature" => signature(options.merge(:parameters => parameters)))
82
+ parameters["oauth_signature"] = signature(options.merge(parameters: parameters))
86
83
 
87
- header_params_str = parameters.sort.map { |k,v| "#{k}=\"#{escape(v)}\"" }.join(", ")
84
+ header_params_str = parameters.sort.map { |k, v| "#{k}=\"#{escape(v)}\"" }.join(", ")
88
85
 
89
86
  realm = "realm=\"#{options[:realm]}\", " if options[:realm]
90
87
  "OAuth #{realm}#{header_params_str}"
@@ -27,7 +27,7 @@ class Net::HTTPGenericRequest
27
27
  @oauth_helper = OAuth::Client::Helper.new(self, helper_options)
28
28
  @oauth_helper.amend_user_agent_header(self)
29
29
  @oauth_helper.hash_body if oauth_body_hash_required?
30
- self.send("set_oauth_#{helper_options[:scheme]}")
30
+ send("set_oauth_#{helper_options[:scheme]}")
31
31
  end
32
32
 
33
33
  # Create a string suitable for signing for an HTTP request. This process involves parameter
@@ -52,34 +52,34 @@ class Net::HTTPGenericRequest
52
52
  @oauth_helper.signature_base_string
53
53
  end
54
54
 
55
- private
55
+ private
56
56
 
57
57
  def oauth_helper_options(http, consumer, token, options)
58
- { :request_uri => oauth_full_request_uri(http,options),
59
- :consumer => consumer,
60
- :token => token,
61
- :scheme => "header",
62
- :signature_method => nil,
63
- :nonce => nil,
64
- :timestamp => nil }.merge(options)
58
+ { request_uri: oauth_full_request_uri(http, options),
59
+ consumer: consumer,
60
+ token: token,
61
+ scheme: "header",
62
+ signature_method: nil,
63
+ nonce: nil,
64
+ timestamp: nil }.merge(options)
65
65
  end
66
66
 
67
- def oauth_full_request_uri(http,options)
68
- uri = URI.parse(self.path)
67
+ def oauth_full_request_uri(http, options)
68
+ uri = URI.parse(path)
69
69
  uri.host = http.address
70
70
  uri.port = http.port
71
71
 
72
72
  if options[:request_endpoint] && options[:site]
73
- is_https = options[:site].match(%r(^https://))
74
- uri.host = options[:site].gsub(%r(^https?://), "")
73
+ is_https = options[:site].match(%r{^https://})
74
+ uri.host = options[:site].gsub(%r{^https?://}, "")
75
75
  uri.port ||= is_https ? 443 : 80
76
76
  end
77
77
 
78
- if http.respond_to?(:use_ssl?) && http.use_ssl?
79
- uri.scheme = "https"
80
- else
81
- uri.scheme = "http"
82
- end
78
+ uri.scheme = if http.respond_to?(:use_ssl?) && http.use_ssl?
79
+ "https"
80
+ else
81
+ "http"
82
+ end
83
83
 
84
84
  uri.to_s
85
85
  end
@@ -100,19 +100,19 @@ private
100
100
  # base string.
101
101
 
102
102
  def set_oauth_body
103
- self.set_form_data(@oauth_helper.stringify_keys(@oauth_helper.parameters_with_oauth))
104
- params_with_sig = @oauth_helper.parameters.merge(:oauth_signature => @oauth_helper.signature)
105
- self.set_form_data(@oauth_helper.stringify_keys(params_with_sig))
103
+ set_form_data(@oauth_helper.stringify_keys(@oauth_helper.parameters_with_oauth))
104
+ params_with_sig = @oauth_helper.parameters.merge(oauth_signature: @oauth_helper.signature)
105
+ set_form_data(@oauth_helper.stringify_keys(params_with_sig))
106
106
  end
107
107
 
108
108
  def set_oauth_query_string
109
- oauth_params_str = @oauth_helper.oauth_parameters.map { |k,v| [escape(k), escape(v)] * "=" }.join("&")
109
+ oauth_params_str = @oauth_helper.oauth_parameters.map { |k, v| [escape(k), escape(v)].join("=") }.join("&")
110
110
  uri = URI.parse(path)
111
- if uri.query.to_s == ""
112
- uri.query = oauth_params_str
113
- else
114
- uri.query = uri.query + "&" + oauth_params_str
115
- end
111
+ uri.query = if uri.query.to_s == ""
112
+ oauth_params_str
113
+ else
114
+ uri.query + "&" + oauth_params_str
115
+ end
116
116
 
117
117
  @path = uri.to_s
118
118
 
data/lib/oauth/client.rb CHANGED
File without changes