oauth 0.5.3 → 0.5.7.pre.pre1

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 +5 -5
  2. data/CHANGELOG.md +454 -0
  3. data/CODE_OF_CONDUCT.md +84 -0
  4. data/LICENSE +18 -17
  5. data/README.md +211 -0
  6. data/TODO +0 -0
  7. data/bin/oauth +2 -2
  8. data/lib/oauth/cli/authorize_command.rb +0 -0
  9. data/lib/oauth/cli/base_command.rb +2 -2
  10. data/lib/oauth/cli/help_command.rb +0 -0
  11. data/lib/oauth/cli/query_command.rb +0 -0
  12. data/lib/oauth/cli/sign_command.rb +0 -0
  13. data/lib/oauth/cli/version_command.rb +0 -0
  14. data/lib/oauth/cli.rb +18 -18
  15. data/lib/oauth/client/action_controller_request.rb +7 -6
  16. data/lib/oauth/client/em_http.rb +99 -99
  17. data/lib/oauth/client/helper.rb +29 -23
  18. data/lib/oauth/client/net_http.rb +5 -5
  19. data/lib/oauth/client.rb +0 -0
  20. data/lib/oauth/consumer.rb +88 -44
  21. data/lib/oauth/errors/error.rb +0 -0
  22. data/lib/oauth/errors/problem.rb +0 -0
  23. data/lib/oauth/errors/unauthorized.rb +3 -1
  24. data/lib/oauth/errors.rb +3 -3
  25. data/lib/oauth/helper.rb +12 -8
  26. data/lib/oauth/oauth.rb +0 -0
  27. data/lib/oauth/oauth_test_helper.rb +4 -4
  28. data/lib/oauth/request_proxy/action_controller_request.rb +15 -11
  29. data/lib/oauth/request_proxy/action_dispatch_request.rb +7 -0
  30. data/lib/oauth/request_proxy/base.rb +16 -16
  31. data/lib/oauth/request_proxy/curb_request.rb +5 -5
  32. data/lib/oauth/request_proxy/em_http_request.rb +18 -12
  33. data/lib/oauth/request_proxy/jabber_request.rb +3 -3
  34. data/lib/oauth/request_proxy/mock_request.rb +1 -1
  35. data/lib/oauth/request_proxy/net_http.rb +9 -9
  36. data/lib/oauth/request_proxy/rack_request.rb +4 -4
  37. data/lib/oauth/request_proxy/rest_client_request.rb +7 -7
  38. data/lib/oauth/request_proxy/typhoeus_request.rb +7 -7
  39. data/lib/oauth/request_proxy.rb +0 -0
  40. data/lib/oauth/server.rb +2 -2
  41. data/lib/oauth/signature/base.rb +8 -6
  42. data/lib/oauth/signature/hmac/sha1.rb +4 -4
  43. data/lib/oauth/signature/hmac/sha256.rb +17 -0
  44. data/lib/oauth/signature/plaintext.rb +2 -2
  45. data/lib/oauth/signature/rsa/sha1.rb +3 -3
  46. data/lib/oauth/signature.rb +0 -0
  47. data/lib/oauth/token.rb +5 -5
  48. data/lib/oauth/tokens/access_token.rb +3 -3
  49. data/lib/oauth/tokens/consumer_token.rb +0 -0
  50. data/lib/oauth/tokens/request_token.rb +10 -3
  51. data/lib/oauth/tokens/server_token.rb +0 -0
  52. data/lib/oauth/tokens/token.rb +0 -0
  53. data/lib/oauth/version.rb +1 -1
  54. data/lib/oauth.rb +8 -7
  55. metadata +182 -64
  56. data/README.rdoc +0 -85
  57. data/lib/oauth/core_ext.rb +0 -53
@@ -1,7 +1,7 @@
1
- require 'oauth/request_proxy/base'
2
- require 'net/http'
3
- require 'uri'
4
- require 'cgi'
1
+ require "oauth/request_proxy/base"
2
+ require "net/http"
3
+ require "uri"
4
+ require "cgi"
5
5
 
6
6
  module OAuth::RequestProxy::Net
7
7
  module HTTP
@@ -48,12 +48,12 @@ module OAuth::RequestProxy::Net
48
48
 
49
49
  def query_string
50
50
  params = [ query_params, auth_header_params ]
51
- params << post_params if (method.to_s.upcase == 'POST' || method.to_s.upcase == 'PUT') && form_url_encoded?
52
- params.compact.join('&')
51
+ params << post_params if (method.to_s.upcase == "POST" || method.to_s.upcase == "PUT") && form_url_encoded?
52
+ params.compact.join("&")
53
53
  end
54
54
 
55
55
  def form_url_encoded?
56
- request['Content-Type'] != nil && request['Content-Type'].to_s.downcase.start_with?('application/x-www-form-urlencoded')
56
+ request["Content-Type"] != nil && request["Content-Type"].to_s.downcase.start_with?("application/x-www-form-urlencoded")
57
57
  end
58
58
 
59
59
  def query_params
@@ -65,8 +65,8 @@ module OAuth::RequestProxy::Net
65
65
  end
66
66
 
67
67
  def auth_header_params
68
- return nil unless request['Authorization'] && request['Authorization'][0,5] == 'OAuth'
69
- request['Authorization']
68
+ return nil unless request["Authorization"] && request["Authorization"][0,5] == "OAuth"
69
+ request["Authorization"]
70
70
  end
71
71
  end
72
72
  end
@@ -1,6 +1,6 @@
1
- require 'oauth/request_proxy/base'
2
- require 'uri'
3
- require 'rack'
1
+ require "oauth/request_proxy/base"
2
+ require "uri"
3
+ require "rack"
4
4
 
5
5
  module OAuth::RequestProxy
6
6
  class RackRequest < OAuth::RequestProxy::Base
@@ -24,7 +24,7 @@ module OAuth::RequestProxy
24
24
  end
25
25
 
26
26
  def signature
27
- parameters['oauth_signature']
27
+ parameters["oauth_signature"]
28
28
  end
29
29
 
30
30
  protected
@@ -1,7 +1,7 @@
1
- require 'oauth/request_proxy/base'
2
- require 'rest-client'
3
- require 'uri'
4
- require 'cgi'
1
+ require "oauth/request_proxy/base"
2
+ require "rest-client"
3
+ require "uri"
4
+ require "cgi"
5
5
 
6
6
  module OAuth::RequestProxy::RestClient
7
7
  class Request < OAuth::RequestProxy::Base
@@ -35,7 +35,7 @@ module OAuth::RequestProxy::RestClient
35
35
 
36
36
  def post_parameters
37
37
  # Post params are only used if posting form data
38
- if method == 'POST' || method == 'PUT'
38
+ if method == "POST" || method == "PUT"
39
39
  OAuth::Helper.stringify_keys(query_string_to_hash(request.payload.to_s) || {})
40
40
  else
41
41
  {}
@@ -45,8 +45,8 @@ module OAuth::RequestProxy::RestClient
45
45
  private
46
46
 
47
47
  def query_string_to_hash(query)
48
- keyvals = query.split('&').inject({}) do |result, q|
49
- k,v = q.split('=')
48
+ keyvals = query.split("&").inject({}) do |result, q|
49
+ k,v = q.split("=")
50
50
  if !v.nil?
51
51
  result.merge({k => v})
52
52
  elsif !result.key?(k)
@@ -1,8 +1,8 @@
1
- require 'oauth/request_proxy/base'
2
- require 'typhoeus'
3
- require 'typhoeus/request'
4
- require 'uri'
5
- require 'cgi'
1
+ require "oauth/request_proxy/base"
2
+ require "typhoeus"
3
+ require "typhoeus/request"
4
+ require "uri"
5
+ require "cgi"
6
6
 
7
7
  module OAuth::RequestProxy::Typhoeus
8
8
  class Request < OAuth::RequestProxy::Base
@@ -20,7 +20,7 @@ module OAuth::RequestProxy::Typhoeus
20
20
 
21
21
  def method
22
22
  request_method = request.options[:method].to_s.upcase
23
- request_method.empty? ? 'GET' : request_method
23
+ request_method.empty? ? "GET" : request_method
24
24
  end
25
25
 
26
26
  def uri
@@ -44,7 +44,7 @@ module OAuth::RequestProxy::Typhoeus
44
44
 
45
45
  def post_parameters
46
46
  # Post params are only used if posting form data
47
- if method == 'POST'
47
+ if method == "POST"
48
48
  OAuth::Helper.stringify_keys(request.options[:params] || {})
49
49
  else
50
50
  {}
File without changes
data/lib/oauth/server.rb CHANGED
@@ -1,5 +1,5 @@
1
- require 'oauth/helper'
2
- require 'oauth/consumer'
1
+ require "oauth/helper"
2
+ require "oauth/consumer"
3
3
 
4
4
  module OAuth
5
5
  # This is mainly used to create consumer credentials and can pretty much be ignored if you want to create your own
@@ -1,7 +1,7 @@
1
- require 'oauth/signature'
2
- require 'oauth/helper'
3
- require 'oauth/request_proxy/base'
4
- require 'base64'
1
+ require "oauth/signature"
2
+ require "oauth/helper"
3
+ require "oauth/request_proxy/base"
4
+ require "base64"
5
5
 
6
6
  module OAuth::Signature
7
7
  class Base
@@ -47,11 +47,13 @@ module OAuth::Signature
47
47
  end
48
48
 
49
49
  def signature
50
- Base64.encode64(digest).chomp.gsub(/\n/,'')
50
+ Base64.encode64(digest).chomp.gsub(/\n/,"")
51
51
  end
52
52
 
53
53
  def ==(cmp_signature)
54
- signature == cmp_signature
54
+ check = signature.bytesize ^ cmp_signature.bytesize
55
+ signature.bytes.zip(cmp_signature.bytes) { |x, y| check |= x ^ y.to_i }
56
+ check.zero?
55
57
  end
56
58
 
57
59
  def verify
@@ -1,17 +1,17 @@
1
- require 'oauth/signature/base'
1
+ require "oauth/signature/base"
2
2
 
3
3
  module OAuth::Signature::HMAC
4
4
  class SHA1 < OAuth::Signature::Base
5
- implements 'hmac-sha1'
5
+ implements "hmac-sha1"
6
6
 
7
7
  def body_hash
8
- Base64.encode64(OpenSSL::Digest::SHA1.digest(request.body || '')).chomp.gsub(/\n/,'')
8
+ Base64.encode64(OpenSSL::Digest::SHA1.digest(request.body || "")).chomp.gsub(/\n/,"")
9
9
  end
10
10
 
11
11
  private
12
12
 
13
13
  def digest
14
- OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha1'), secret, signature_base_string)
14
+ OpenSSL::HMAC.digest(OpenSSL::Digest.new("sha1"), secret, signature_base_string)
15
15
  end
16
16
  end
17
17
  end
@@ -0,0 +1,17 @@
1
+ require "oauth/signature/base"
2
+
3
+ module OAuth::Signature::HMAC
4
+ class SHA256 < OAuth::Signature::Base
5
+ implements "hmac-sha256"
6
+
7
+ def body_hash
8
+ Base64.encode64(OpenSSL::Digest::SHA256.digest(request.body || "")).chomp.gsub(/\n/,"")
9
+ end
10
+
11
+ private
12
+
13
+ def digest
14
+ OpenSSL::HMAC.digest(OpenSSL::Digest.new("sha256"), secret, signature_base_string)
15
+ end
16
+ end
17
+ end
@@ -1,8 +1,8 @@
1
- require 'oauth/signature/base'
1
+ require "oauth/signature/base"
2
2
 
3
3
  module OAuth::Signature
4
4
  class PLAINTEXT < Base
5
- implements 'plaintext'
5
+ implements "plaintext"
6
6
 
7
7
  def signature
8
8
  signature_base_string
@@ -1,8 +1,8 @@
1
- require 'oauth/signature/base'
1
+ require "oauth/signature/base"
2
2
 
3
3
  module OAuth::Signature::RSA
4
4
  class SHA1 < OAuth::Signature::Base
5
- implements 'rsa-sha1'
5
+ implements "rsa-sha1"
6
6
 
7
7
  def ==(cmp_signature)
8
8
  public_key.verify(OpenSSL::Digest::SHA1.new, Base64.decode64(cmp_signature.is_a?(Array) ? cmp_signature.first : cmp_signature), signature_base_string)
@@ -19,7 +19,7 @@ module OAuth::Signature::RSA
19
19
  end
20
20
 
21
21
  def body_hash
22
- Base64.encode64(OpenSSL::Digest::SHA1.digest(request.body || '')).chomp.gsub(/\n/,'')
22
+ Base64.encode64(OpenSSL::Digest::SHA1.digest(request.body || "")).chomp.gsub(/\n/,"")
23
23
  end
24
24
 
25
25
  private
File without changes
data/lib/oauth/token.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # this exists for backwards-compatibility
2
2
 
3
- require 'oauth/tokens/token'
4
- require 'oauth/tokens/server_token'
5
- require 'oauth/tokens/consumer_token'
6
- require 'oauth/tokens/request_token'
7
- require 'oauth/tokens/access_token'
3
+ require "oauth/tokens/token"
4
+ require "oauth/tokens/server_token"
5
+ require "oauth/tokens/consumer_token"
6
+ require "oauth/tokens/request_token"
7
+ require "oauth/tokens/access_token"
@@ -43,7 +43,7 @@ module OAuth
43
43
  # @response = @token.post('/people', nil, {'Accept' => 'application/xml' })
44
44
  # @response = @token.post('/people', @person.to_xml, { 'Accept'=>'application/xml', 'Content-Type' => 'application/xml' })
45
45
  #
46
- def post(path, body = '', headers = {})
46
+ def post(path, body = "", headers = {})
47
47
  request(:post, path, body, headers)
48
48
  end
49
49
 
@@ -55,7 +55,7 @@ module OAuth
55
55
  # @response = @token.put('/people/123', nil, { 'Accept' => 'application/xml' })
56
56
  # @response = @token.put('/people/123', @person.to_xml, { 'Accept' => 'application/xml', 'Content-Type' => 'application/xml' })
57
57
  #
58
- def put(path, body = '', headers = {})
58
+ def put(path, body = "", headers = {})
59
59
  request(:put, path, body, headers)
60
60
  end
61
61
 
@@ -67,7 +67,7 @@ module OAuth
67
67
  # @response = @token.patch('/people/123', nil, { 'Accept' => 'application/xml' })
68
68
  # @response = @token.patch('/people/123', @person.to_xml, { 'Accept' => 'application/xml', 'Content-Type' => 'application/xml' })
69
69
  #
70
- def patch(path, body = '', headers = {})
70
+ def patch(path, body = "", headers = {})
71
71
  request(:patch, path, body, headers)
72
72
  end
73
73
 
File without changes
@@ -8,7 +8,14 @@ module OAuth
8
8
  return nil if self.token.nil?
9
9
 
10
10
  params = (params || {}).merge(:oauth_token => self.token)
11
- build_authorize_url(consumer.authorize_url, params)
11
+ build_url(consumer.authorize_url, params)
12
+ end
13
+
14
+ def authenticate_url(params = nil)
15
+ return nil if self.token.nil?
16
+
17
+ params = (params || {}).merge(:oauth_token => self.token)
18
+ build_url(consumer.authenticate_url, params)
12
19
  end
13
20
 
14
21
  def callback_confirmed?
@@ -23,8 +30,8 @@ module OAuth
23
30
 
24
31
  protected
25
32
 
26
- # construct an authorization url
27
- def build_authorize_url(base_url, params)
33
+ # construct an authorization or authentication url
34
+ def build_url(base_url, params)
28
35
  uri = URI.parse(base_url.to_s)
29
36
  queries = {}
30
37
  queries = Hash[URI.decode_www_form(uri.query)] if uri.query
File without changes
File without changes
data/lib/oauth/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module OAuth
2
- VERSION = "0.5.3"
2
+ VERSION = "0.5.7-pre1"
3
3
  end
data/lib/oauth.rb CHANGED
@@ -1,12 +1,13 @@
1
1
  root = File.dirname(__FILE__)
2
2
  $LOAD_PATH << root unless $LOAD_PATH.include?(root)
3
3
 
4
- require 'oauth/version'
4
+ require "oauth/version"
5
5
 
6
- require 'oauth/oauth'
7
- require 'oauth/core_ext'
6
+ require "oauth/oauth"
8
7
 
9
- require 'oauth/client/helper'
10
- require 'oauth/signature/hmac/sha1'
11
- require 'oauth/signature/rsa/sha1'
12
- require 'oauth/request_proxy/mock_request'
8
+ require "oauth/client/helper"
9
+ require "oauth/signature/plaintext"
10
+ require "oauth/signature/hmac/sha1"
11
+ require "oauth/signature/hmac/sha256"
12
+ require "oauth/signature/rsa/sha1"
13
+ require "oauth/request_proxy/mock_request"