fernet-rack 0.5 → 0.6

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: 34dd46afd2d74752f5a04152b86a65657c182510
4
- data.tar.gz: 6af6134534b026a700cfbf61ee99748560db41c3
3
+ metadata.gz: 21c8aaf57239d1f082a25804b9ac2581cd463edb
4
+ data.tar.gz: b5b7e33dad82fd43db6c6e13106d072007aa7f58
5
5
  SHA512:
6
- metadata.gz: 9c33219da301503c3f647079806f21de1e36b7fc42b7f6a5b7b954cbd9ab8d0d2f5e257689ecd4a32891b48f327616f483de7080ed6d1b6e2f3947370aba5ac2
7
- data.tar.gz: 3d0577924e955150ff6300393c38bad488356e4684e033fa47b2d506ad1c7918fc009f979f1e1f6458640f8973c7cd1103b65d554663dd6b867ebbd01dbc7bc5
6
+ metadata.gz: a1f21e59d62fc3fea4470628095f0efdce9c57f63af73e58f28baeee1261f09d454a3113febb3d86ede5caba2364a47a0d8e9c7e67a2705fa01a7b589e1228e7
7
+ data.tar.gz: 5cff741b336433dc07e21530ea668c56caa72a6ae8af361a310b2021f1e338b698f9892ead4cec2672b54c0e01946624fc2c124f80b929d54bdabcd332a7e9d0
data/fernet-rack.gemspec CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |gem|
13
13
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
14
  gem.name = "fernet-rack"
15
15
  gem.require_paths = ["lib"]
16
- gem.version = '0.5'
16
+ gem.version = '0.6'
17
17
 
18
18
  gem.add_runtime_dependency "fernet", '~> 2.0'
19
19
  gem.add_development_dependency "minitest", '~> 5.4'
data/lib/rack/fernet.rb CHANGED
@@ -28,8 +28,13 @@ module Rack
28
28
  end
29
29
 
30
30
  def call(env)
31
+ secret = if @secret.respond_to?(:call)
32
+ @secret.call(env)
33
+ else
34
+ @secret
35
+ end
31
36
  payload = env["rack.input"].read
32
- verifier = ::Fernet.verifier(@secret, payload)
37
+ verifier = ::Fernet.verifier(secret, payload)
33
38
  if verifier.valid?
34
39
  env["CONTENT_TYPE"] = @content_type
35
40
  env["rack.input"] = StringIO.new(verifier.message)
@@ -50,4 +55,4 @@ module Rack
50
55
  ]
51
56
  end
52
57
  end
53
- end
58
+ end
data/test/test_fernet.rb CHANGED
@@ -3,7 +3,6 @@ require 'rack/fernet'
3
3
  require 'rack/lint'
4
4
  require 'rack/mock'
5
5
 
6
-
7
6
  class FernetTest < Minitest::Test
8
7
  def setup
9
8
  unprotected_app = Rack::Lint.new(lambda do |env|
@@ -21,7 +20,6 @@ class FernetTest < Minitest::Test
21
20
  end
22
21
 
23
22
  def test_valid_signature
24
- data = Fernet.generate(@secret, '{}')
25
23
  request(data) do |response|
26
24
  assert_equal(response.status, 200)
27
25
  assert_equal(response.body, '{}')
@@ -35,8 +33,28 @@ class FernetTest < Minitest::Test
35
33
  end
36
34
  end
37
35
 
38
- private
36
+ protected
39
37
  def request(body=nil, headers={})
40
38
  yield @request.get('/', input: body, CONTENT_TYPE: 'application/octet-stream')
41
39
  end
42
- end
40
+
41
+ def data
42
+ Fernet.generate(@secret, '{}')
43
+ end
44
+ end
45
+
46
+ class DynamicFernetTest < FernetTest
47
+ def setup
48
+ unprotected_app = Rack::Lint.new(lambda do |env|
49
+ [ 200, {'Content-Type' => env["CONTENT_TYPE"].to_s }, [env["rack.input"].read] ]
50
+ end)
51
+ @secret = ->(env) { "SqD5Mz/qFnXPLVTvkQKRDyVpli3Q6/habc7i89IrBRA=" }
52
+ @app = Rack::Fernet.new(unprotected_app, @secret)
53
+ @request = Rack::MockRequest.new(@app)
54
+ end
55
+
56
+ protected
57
+ def data
58
+ Fernet.generate(@secret.call(nil), '{}')
59
+ end
60
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fernet-rack
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.5'
4
+ version: '0.6'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Timothée Peignier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-24 00:00:00.000000000 Z
11
+ date: 2014-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fernet