rack 1.6.12 → 1.6.13
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rack might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/rack.rb +1 -1
- data/lib/rack/session/abstract/id.rb +2 -2
- data/rack.gemspec +1 -1
- data/test/spec_session_persisted_secure_secure_session_hash.rb +73 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1284c246863ad0e0c1472c12dc028993a5c84223a53deb943183f396c21f05ec
|
4
|
+
data.tar.gz: 6aba4634a7f953dff80b391f999eae11404516f22158d6b2931f8fc7d65aa02b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81f24112cf528aa9f672dede1598fe9527a7d3aa5578e11fe6d6064a96d3091f0afae7f9d4bf453f1eff8c9a3d2ce4bb57991e5a45d41abfdc1948a62c8f65e2
|
7
|
+
data.tar.gz: bfde816a21a1293b1b8be7e7f3fd583887e854c57c96afc2d9b823cf16eb40938ef563294bb323389ab241322cfd3add5503e69e3e0ce8678739988d4990e43d
|
data/lib/rack.rb
CHANGED
@@ -29,9 +29,9 @@ module Rack
|
|
29
29
|
end
|
30
30
|
|
31
31
|
alias :cookie_value :public_id
|
32
|
+
alias :to_s :public_id
|
32
33
|
|
33
34
|
def empty?; false; end
|
34
|
-
def to_s; raise; end
|
35
35
|
def inspect; public_id.inspect; end
|
36
36
|
|
37
37
|
private
|
@@ -431,7 +431,7 @@ module Rack
|
|
431
431
|
def [](key)
|
432
432
|
if key == "session_id"
|
433
433
|
load_for_read!
|
434
|
-
id.public_id
|
434
|
+
id.public_id if id
|
435
435
|
else
|
436
436
|
super
|
437
437
|
end
|
data/rack.gemspec
CHANGED
@@ -0,0 +1,73 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'minitest/global_expectations/autorun'
|
4
|
+
require 'rack/session/abstract/id'
|
5
|
+
|
6
|
+
describe Rack::Session::Abstract::PersistedSecure::SecureSessionHash do
|
7
|
+
attr_reader :hash
|
8
|
+
|
9
|
+
def setup
|
10
|
+
super
|
11
|
+
@store = Class.new do
|
12
|
+
def load_session(req)
|
13
|
+
[Rack::Session::SessionId.new("id"), { foo: :bar, baz: :qux }]
|
14
|
+
end
|
15
|
+
def session_exists?(req)
|
16
|
+
true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
@hash = Rack::Session::Abstract::PersistedSecure::SecureSessionHash.new(@store.new, nil)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "returns keys" do
|
23
|
+
assert_equal ["foo", "baz"], hash.keys
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns values" do
|
27
|
+
assert_equal [:bar, :qux], hash.values
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "#[]" do
|
31
|
+
it "returns value for a matching key" do
|
32
|
+
assert_equal :bar, hash[:foo]
|
33
|
+
end
|
34
|
+
|
35
|
+
it "returns value for a 'session_id' key" do
|
36
|
+
assert_equal "id", hash['session_id']
|
37
|
+
end
|
38
|
+
|
39
|
+
it "returns nil value for missing 'session_id' key" do
|
40
|
+
store = @store.new
|
41
|
+
def store.load_session(req)
|
42
|
+
[nil, {}]
|
43
|
+
end
|
44
|
+
@hash = Rack::Session::Abstract::PersistedSecure::SecureSessionHash.new(store, nil)
|
45
|
+
assert_nil hash['session_id']
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "#fetch" do
|
50
|
+
it "returns value for a matching key" do
|
51
|
+
assert_equal :bar, hash.fetch(:foo)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "works with a default value" do
|
55
|
+
assert_equal :default, hash.fetch(:unknown, :default)
|
56
|
+
end
|
57
|
+
|
58
|
+
it "works with a block" do
|
59
|
+
assert_equal :default, hash.fetch(:unkown) { :default }
|
60
|
+
end
|
61
|
+
|
62
|
+
it "it raises when fetching unknown keys without defaults" do
|
63
|
+
lambda { hash.fetch(:unknown) }.must_raise KeyError
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe "#stringify_keys" do
|
68
|
+
it "returns hash or session hash with keys stringified" do
|
69
|
+
assert_equal({ "foo" => :bar, "baz" => :qux }, hash.send(:stringify_keys, hash).to_h)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Neukirchen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bacon
|
@@ -221,6 +221,7 @@ files:
|
|
221
221
|
- test/spec_session_abstract_id.rb
|
222
222
|
- test/spec_session_cookie.rb
|
223
223
|
- test/spec_session_memcache.rb
|
224
|
+
- test/spec_session_persisted_secure_secure_session_hash.rb
|
224
225
|
- test/spec_session_pool.rb
|
225
226
|
- test/spec_showexceptions.rb
|
226
227
|
- test/spec_showstatus.rb
|
@@ -255,7 +256,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
255
256
|
- !ruby/object:Gem::Version
|
256
257
|
version: '0'
|
257
258
|
requirements: []
|
258
|
-
rubygems_version: 3.
|
259
|
+
rubygems_version: 3.1.2
|
259
260
|
signing_key:
|
260
261
|
specification_version: 4
|
261
262
|
summary: a modular Ruby webserver interface
|
@@ -281,6 +282,7 @@ test_files:
|
|
281
282
|
- test/spec_showstatus.rb
|
282
283
|
- test/spec_chunked.rb
|
283
284
|
- test/spec_runtime.rb
|
285
|
+
- test/spec_session_persisted_secure_secure_session_hash.rb
|
284
286
|
- test/spec_fastcgi.rb
|
285
287
|
- test/spec_builder.rb
|
286
288
|
- test/spec_config.rb
|