fernet-rack 0.5 → 0.6

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