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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +454 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/LICENSE +18 -17
- data/README.md +211 -0
- data/TODO +0 -0
- data/bin/oauth +2 -2
- data/lib/oauth/cli/authorize_command.rb +0 -0
- data/lib/oauth/cli/base_command.rb +2 -2
- data/lib/oauth/cli/help_command.rb +0 -0
- data/lib/oauth/cli/query_command.rb +0 -0
- data/lib/oauth/cli/sign_command.rb +0 -0
- data/lib/oauth/cli/version_command.rb +0 -0
- data/lib/oauth/cli.rb +18 -18
- data/lib/oauth/client/action_controller_request.rb +7 -6
- data/lib/oauth/client/em_http.rb +99 -99
- data/lib/oauth/client/helper.rb +29 -23
- data/lib/oauth/client/net_http.rb +5 -5
- data/lib/oauth/client.rb +0 -0
- data/lib/oauth/consumer.rb +88 -44
- data/lib/oauth/errors/error.rb +0 -0
- data/lib/oauth/errors/problem.rb +0 -0
- data/lib/oauth/errors/unauthorized.rb +3 -1
- data/lib/oauth/errors.rb +3 -3
- data/lib/oauth/helper.rb +12 -8
- data/lib/oauth/oauth.rb +0 -0
- data/lib/oauth/oauth_test_helper.rb +4 -4
- data/lib/oauth/request_proxy/action_controller_request.rb +15 -11
- data/lib/oauth/request_proxy/action_dispatch_request.rb +7 -0
- data/lib/oauth/request_proxy/base.rb +16 -16
- data/lib/oauth/request_proxy/curb_request.rb +5 -5
- data/lib/oauth/request_proxy/em_http_request.rb +18 -12
- data/lib/oauth/request_proxy/jabber_request.rb +3 -3
- data/lib/oauth/request_proxy/mock_request.rb +1 -1
- data/lib/oauth/request_proxy/net_http.rb +9 -9
- data/lib/oauth/request_proxy/rack_request.rb +4 -4
- data/lib/oauth/request_proxy/rest_client_request.rb +7 -7
- data/lib/oauth/request_proxy/typhoeus_request.rb +7 -7
- data/lib/oauth/request_proxy.rb +0 -0
- data/lib/oauth/server.rb +2 -2
- data/lib/oauth/signature/base.rb +8 -6
- data/lib/oauth/signature/hmac/sha1.rb +4 -4
- data/lib/oauth/signature/hmac/sha256.rb +17 -0
- data/lib/oauth/signature/plaintext.rb +2 -2
- data/lib/oauth/signature/rsa/sha1.rb +3 -3
- data/lib/oauth/signature.rb +0 -0
- data/lib/oauth/token.rb +5 -5
- data/lib/oauth/tokens/access_token.rb +3 -3
- data/lib/oauth/tokens/consumer_token.rb +0 -0
- data/lib/oauth/tokens/request_token.rb +10 -3
- data/lib/oauth/tokens/server_token.rb +0 -0
- data/lib/oauth/tokens/token.rb +0 -0
- data/lib/oauth/version.rb +1 -1
- data/lib/oauth.rb +8 -7
- metadata +182 -64
- data/README.rdoc +0 -85
- data/lib/oauth/core_ext.rb +0 -53
@@ -1,7 +1,7 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
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 ==
|
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[
|
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[
|
69
|
-
request[
|
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
|
2
|
-
require
|
3
|
-
require
|
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[
|
27
|
+
parameters["oauth_signature"]
|
28
28
|
end
|
29
29
|
|
30
30
|
protected
|
@@ -1,7 +1,7 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
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 ==
|
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(
|
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
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
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? ?
|
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 ==
|
47
|
+
if method == "POST"
|
48
48
|
OAuth::Helper.stringify_keys(request.options[:params] || {})
|
49
49
|
else
|
50
50
|
{}
|
data/lib/oauth/request_proxy.rb
CHANGED
File without changes
|
data/lib/oauth/server.rb
CHANGED
data/lib/oauth/signature/base.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
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
|
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
|
1
|
+
require "oauth/signature/base"
|
2
2
|
|
3
3
|
module OAuth::Signature::HMAC
|
4
4
|
class SHA1 < OAuth::Signature::Base
|
5
|
-
implements
|
5
|
+
implements "hmac-sha1"
|
6
6
|
|
7
7
|
def body_hash
|
8
|
-
Base64.encode64(OpenSSL::Digest::SHA1.digest(request.body ||
|
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(
|
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
|
1
|
+
require "oauth/signature/base"
|
2
2
|
|
3
3
|
module OAuth::Signature::RSA
|
4
4
|
class SHA1 < OAuth::Signature::Base
|
5
|
-
implements
|
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 ||
|
22
|
+
Base64.encode64(OpenSSL::Digest::SHA1.digest(request.body || "")).chomp.gsub(/\n/,"")
|
23
23
|
end
|
24
24
|
|
25
25
|
private
|
data/lib/oauth/signature.rb
CHANGED
File without changes
|
data/lib/oauth/token.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# this exists for backwards-compatibility
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
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 =
|
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 =
|
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 =
|
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
|
-
|
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
|
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
|
data/lib/oauth/tokens/token.rb
CHANGED
File without changes
|
data/lib/oauth/version.rb
CHANGED
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
|
4
|
+
require "oauth/version"
|
5
5
|
|
6
|
-
require
|
7
|
-
require 'oauth/core_ext'
|
6
|
+
require "oauth/oauth"
|
8
7
|
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
12
|
-
require
|
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"
|