oauth 0.5.3 → 0.5.7.pre.pre1

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