mojodna-oauth 0.3.5 → 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +10 -1
- data/Rakefile +1 -1
- data/lib/oauth/cli.rb +15 -3
- data/lib/oauth/consumer.rb +7 -3
- data/lib/oauth/request_proxy/action_controller_request.rb +0 -1
- data/lib/oauth/version.rb +1 -1
- data/oauth.gemspec +2 -2
- data/test/test_access_token.rb +0 -2
- data/test/test_action_controller_request_proxy.rb +8 -6
- data/test/test_consumer.rb +1 -3
- data/test/test_helper.rb +5 -1
- data/test/test_hmac_sha1.rb +0 -1
- data/test/test_net_http_client.rb +0 -2
- data/test/test_net_http_request_proxy.rb +0 -1
- data/test/test_oauth_helper.rb +0 -1
- data/test/test_request_token.rb +0 -2
- metadata +2 -2
data/History.txt
CHANGED
@@ -1,7 +1,16 @@
|
|
1
|
+
== 0.3.6 2009-09-14
|
2
|
+
|
3
|
+
* Added -B CLI option to use the :body authentication scheme (Seth)
|
4
|
+
* Respect `--method` in `authorize` CLI command (Seth)
|
5
|
+
* Support POST and PUT with raw bodies (Yu-Shan Fung et al)
|
6
|
+
* Test clean-up (Xavier Shay, Hannes Tydén)
|
7
|
+
* Added :ca_file consumer option to allow consumer specific certificate
|
8
|
+
override. (Pelle)
|
9
|
+
|
1
10
|
== 0.3.5 2009-06-03
|
2
11
|
|
3
12
|
* `query` CLI command to access protected resources (Seth)
|
4
|
-
* Added -H, -Q CLI options for specifying the
|
13
|
+
* Added -H, -Q CLI options for specifying the authentication scheme (Seth)
|
5
14
|
* Added -O CLI option for specifying a file containing options (Seth)
|
6
15
|
* Support streamable body contents for large request bodies (Seth Cousins)
|
7
16
|
* Support for OAuth 1.0a (Seth)
|
data/Rakefile
CHANGED
data/lib/oauth/cli.rb
CHANGED
@@ -50,13 +50,14 @@ module OAuth
|
|
50
50
|
:access_token_url => options[:access_token_url],
|
51
51
|
:authorize_url => options[:authorize_url],
|
52
52
|
:request_token_url => options[:request_token_url],
|
53
|
-
:scheme => options[:scheme]
|
53
|
+
:scheme => options[:scheme],
|
54
|
+
:http_method => options[:method].to_s.downcase.to_sym
|
54
55
|
|
55
56
|
# parameters for OAuth 1.0a
|
56
57
|
oauth_verifier = nil
|
57
58
|
|
58
59
|
# get a request token
|
59
|
-
request_token = consumer.get_request_token({ :oauth_callback => options[:oauth_callback] }, {
|
60
|
+
request_token = consumer.get_request_token({ :oauth_callback => options[:oauth_callback] }, { "scope" => options[:scope] })
|
60
61
|
|
61
62
|
if request_token.callback_confirmed?
|
62
63
|
stdout.puts "Server appears to support OAuth 1.0a; enabling support."
|
@@ -100,7 +101,13 @@ module OAuth
|
|
100
101
|
|
101
102
|
access_token = OAuth::AccessToken.new(consumer, options[:oauth_token], options[:oauth_token_secret])
|
102
103
|
|
103
|
-
|
104
|
+
# append params to the URL
|
105
|
+
uri = URI.parse(options[:uri])
|
106
|
+
params = prepare_parameters.map { |k,v| v.map { |v2| "#{URI.encode(k)}=#{URI.encode(v2)}" } * "&" }
|
107
|
+
uri.query = [uri.query, *params].reject { |x| x.nil? } * "&"
|
108
|
+
p uri.to_s
|
109
|
+
|
110
|
+
response = access_token.request(options[:method].downcase.to_sym, uri.to_s)
|
104
111
|
puts "#{response.code} #{response.message}"
|
105
112
|
puts response.body
|
106
113
|
when "sign"
|
@@ -190,12 +197,17 @@ module OAuth
|
|
190
197
|
options[:oauth_signature_method] = "HMAC-SHA1"
|
191
198
|
options[:oauth_timestamp] = OAuth::Helper.generate_timestamp
|
192
199
|
options[:oauth_version] = "1.0"
|
200
|
+
options[:method] = :post
|
193
201
|
options[:params] = []
|
194
202
|
options[:scheme] = :header
|
195
203
|
options[:version] = "1.0"
|
196
204
|
|
197
205
|
## Common Options
|
198
206
|
|
207
|
+
opts.on("-B", "--body", "Use the request body for OAuth parameters.") do
|
208
|
+
options[:scheme] = :body
|
209
|
+
end
|
210
|
+
|
199
211
|
opts.on("--consumer-key KEY", "Specifies the consumer key to use.") do |v|
|
200
212
|
options[:oauth_consumer_key] = v
|
201
213
|
end
|
data/lib/oauth/consumer.rb
CHANGED
@@ -39,6 +39,9 @@ module OAuth
|
|
39
39
|
# Default http method used for OAuth Token Requests (defaults to :post)
|
40
40
|
:http_method => :post,
|
41
41
|
|
42
|
+
# Add a custom ca_file for consumer
|
43
|
+
# :ca_file => '/etc/certs.pem'
|
44
|
+
|
42
45
|
:oauth_version => "1.0"
|
43
46
|
}
|
44
47
|
|
@@ -278,8 +281,8 @@ module OAuth
|
|
278
281
|
|
279
282
|
http_object.use_ssl = (our_uri.scheme == 'https')
|
280
283
|
|
281
|
-
if CA_FILE
|
282
|
-
http_object.ca_file = CA_FILE
|
284
|
+
if @options[:ca_file] || CA_FILE
|
285
|
+
http_object.ca_file = @options[:ca_file] || CA_FILE
|
283
286
|
http_object.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
284
287
|
http_object.verify_depth = 5
|
285
288
|
else
|
@@ -294,7 +297,8 @@ module OAuth
|
|
294
297
|
http_method = http_method.to_sym
|
295
298
|
|
296
299
|
if [:post, :put].include?(http_method)
|
297
|
-
data =
|
300
|
+
data = arguments.shift
|
301
|
+
data.reject! { |k,v| v.nil? } if data.is_a?(Hash)
|
298
302
|
end
|
299
303
|
|
300
304
|
headers = arguments.first.is_a?(Hash) ? arguments.shift : {}
|
data/lib/oauth/version.rb
CHANGED
data/oauth.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{oauth}
|
5
|
-
s.version = "0.3.
|
5
|
+
s.version = "0.3.6"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Pelle Braendgaard", "Blaine Cook", "Larry Halff", "Jesse Clark", "Jon Crosby", "Seth Fitzsimmons", "Matt Sanford"]
|
9
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-09-14}
|
10
10
|
s.default_executable = %q{oauth}
|
11
11
|
s.description = %q{OAuth Core Ruby implementation}
|
12
12
|
s.email = %q{oauth-ruby@googlegroups.com}
|
data/test/test_access_token.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
+
gem 'actionpack','2.2.2'
|
1
2
|
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
-
|
3
|
-
require '
|
3
|
+
|
4
|
+
require 'oauth/request_proxy/action_controller_request'
|
4
5
|
require 'action_controller/test_process'
|
5
6
|
|
6
7
|
class ActionControllerRequestProxyTest < Test::Unit::TestCase
|
7
|
-
|
8
8
|
def request_proxy(request_method = :get, uri_params = {}, body_params = {})
|
9
9
|
request = ActionController::TestRequest.new
|
10
10
|
|
@@ -15,11 +15,13 @@ class ActionControllerRequestProxyTest < Test::Unit::TestCase
|
|
15
15
|
request.env['REQUEST_METHOD'] = 'PUT'
|
16
16
|
end
|
17
17
|
|
18
|
+
request.env['REQUEST_URI'] = '/'
|
18
19
|
request.env['RAW_POST_DATA'] = body_params.to_query
|
20
|
+
request.env['QUERY_STRING'] = body_params.to_query
|
19
21
|
request.env['CONTENT_TYPE'] = 'application/x-www-form-urlencoded'
|
20
22
|
|
21
23
|
yield request if block_given?
|
22
|
-
OAuth::RequestProxy.proxy(request, :parameters=>uri_params)
|
24
|
+
OAuth::RequestProxy.proxy(request, :parameters => uri_params)
|
23
25
|
end
|
24
26
|
|
25
27
|
def test_that_proxy_simple_get_request_works_with_query_params
|
@@ -46,7 +48,7 @@ class ActionControllerRequestProxyTest < Test::Unit::TestCase
|
|
46
48
|
assert_equal 'PUT', request_proxy.method
|
47
49
|
end
|
48
50
|
|
49
|
-
def
|
51
|
+
def test_that_proxy_simple_get_request_works_with_post_params
|
50
52
|
request_proxy = request_proxy(:get, {}, {'key'=>'value'})
|
51
53
|
|
52
54
|
expected_parameters = []
|
@@ -70,7 +72,7 @@ class ActionControllerRequestProxyTest < Test::Unit::TestCase
|
|
70
72
|
assert_equal 'PUT', request_proxy.method
|
71
73
|
end
|
72
74
|
|
73
|
-
def
|
75
|
+
def test_that_proxy_simple_get_request_works_with_mixed_params
|
74
76
|
request_proxy = request_proxy(:get, {'key'=>'value'}, {'key2'=>'value2'})
|
75
77
|
|
76
78
|
expected_parameters = [["key", "value"]]
|
data/test/test_consumer.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
require 'test/unit'
|
2
|
-
|
2
|
+
|
3
|
+
$LOAD_PATH << File.dirname(__FILE__) + '/../lib/'
|
4
|
+
require 'oauth'
|
5
|
+
|
6
|
+
# require File.dirname(__FILE__) + '/../lib/oauth'
|
3
7
|
|
4
8
|
begin
|
5
9
|
# load redgreen unless running from within TextMate (in which case ANSI
|
data/test/test_hmac_sha1.rb
CHANGED
data/test/test_oauth_helper.rb
CHANGED
data/test/test_request_token.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mojodna-oauth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pelle Braendgaard
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2009-
|
18
|
+
date: 2009-09-14 00:00:00 -07:00
|
19
19
|
default_executable: oauth
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|