oauth 0.5.8 → 0.5.9

Sign up to get free protection for your applications and to get access to all the features.
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