rack-contrib-sign 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0f04f49f937e4e268755732df3b62e1fa36a0646
4
- data.tar.gz: f93c5ed88d1dd26885d43014f1b25818a77e0617
3
+ metadata.gz: 261e57c9a4606ca41067fcbcfb63f7ef13a9dfe4
4
+ data.tar.gz: a663c537dea95021bbd72372c0c83632cad18f7f
5
5
  SHA512:
6
- metadata.gz: 5152592a6cbcae4aa188c8fdd81cbe647a74dcd0bdc84898a8693e1624579edbb8fe2d7003d93c9c3442eccafd2f23f25a0fe7d64f25676e6a895a7625464cec
7
- data.tar.gz: b6b67f84cadd35298807bb9136ef20c43cdb802b8061e72eb05102dfc39d93674e25fb34c405ab4ecf738d309d0fc8c6fc126fe014ab8d9a42fde35f39f7bc91
6
+ metadata.gz: 4eef00cbcb5a82e8934b19a85e8e1b26ed26bffb2adcc31ef6c619a493eb914f54f6052c0fad26928fcc4b46227a1da46af8570ffc521f1e12e5d377268a4ed9
7
+ data.tar.gz: 89e60881055a32c1679274c7533c0f23d1a43c71d30d3c30a8798e090195821bd33db8894f496b8d3983cb1c31e400769190fe226dad8d3b1e4371699636d8b5
@@ -1,4 +1,5 @@
1
1
 
2
+ require 'rack'
2
3
  require 'digest/md5'
3
4
  require 'logger'
4
5
 
@@ -8,7 +8,7 @@ module Rack
8
8
  @app = app
9
9
  @logger = opts[:logger]
10
10
  @realm = opts[:realm]
11
- @credentials = opts[:credentials]
11
+ @credentials = opts[:credentials] || {}
12
12
  @header_prefix = (opts[:prefix] || "").gsub(/-/, '_').downcase
13
13
  end
14
14
 
@@ -46,8 +46,18 @@ module Rack
46
46
 
47
47
  # Extract environmental data into a Receipt
48
48
  def build_receipt env, credentials
49
+ req = Rack::Request.new(env)
50
+ pp req
49
51
  receipt = Rack::Contrib::Sign::Receipt.new
50
- receipt.host = env['rack.url_scheme'] + '://' + env['HTTP_HOST']
52
+
53
+ port = ''
54
+ unless (
55
+ (req.scheme == 'http' && req.port.to_s == '80') ||
56
+ (req.scheme == 'https' && req.port.to_s == '443'))
57
+ port = ':' + req.port.to_s
58
+ end
59
+
60
+ receipt.host = req.scheme + '://' + req.host + port
51
61
  receipt.uri = env['REQUEST_URI']
52
62
  receipt.request_method = env['REQUEST_METHOD']
53
63
  receipt.body = extract_body env
@@ -1,7 +1,7 @@
1
1
  module Rack
2
2
  module Contrib
3
3
  module Sign
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  end
6
6
  end
7
7
  end
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
+ spec.add_dependency "rack"
22
+
21
23
  spec.add_development_dependency "bundler"
22
24
  spec.add_development_dependency "rake"
23
25
  spec.add_development_dependency "rspec"
@@ -53,6 +53,26 @@ describe Rack::Contrib::Sign::Middleware do
53
53
  })
54
54
 
55
55
  end
56
+
57
+ it "Uses rack:request to handle x-forwarded* headers" do
58
+ env = {
59
+ 'REQUEST_METHOD' => 'POST',
60
+ 'HTTP_HOST' => '127.0.0.1',
61
+ 'SERVER_PORT' => '9292',
62
+ 'rack.url_scheme' => 'http',
63
+ 'REQUEST_URI' => '/foo/bar',
64
+ 'HTTP_HI_FOOO' => 'YIPEE',
65
+ 'rack.input' => StringIO.new('foo=bar'),
66
+ 'HTTP_X_FORWARDED_PROTO' => 'https',
67
+ 'HTTP_X_FORWARDED_PORT' => '443'
68
+ }
69
+ cred_provider['123'] = 'abc'
70
+ creds = { key: '123', signature: 'foo' }
71
+
72
+ receipt = ware.build_receipt(env, creds)
73
+
74
+ receipt.host.should eq('https://127.0.0.1')
75
+ end
56
76
  end
57
77
 
58
78
  describe "#extract_body" do
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-contrib-sign
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Graham Christensen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-29 00:00:00.000000000 Z
11
+ date: 2013-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rack
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement