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.
- 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"
|