redis-actionpack 5.0.1 → 5.0.2

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: f4372ed1017dfad6a583f6b759134e465612cac1
4
- data.tar.gz: 2bdf95ee3cc854af1dc008ca0034d80b6462bedd
3
+ metadata.gz: 3c307087a763d1e0b3954ec756cd840ed1df3e8b
4
+ data.tar.gz: ee7c5f3361f0cf5c7e6009b033c6cb0524dbb0a2
5
5
  SHA512:
6
- metadata.gz: 886c02951f763d866f9163727cf58608e44b47dc4d55f38b029cb8d9569c7d46223f2eb1ab02e8ced4b18d8be2b42d4064c31871152b7a20773ffaa68a20a173
7
- data.tar.gz: 71400d65a5db56b45f8a8d6660e7791b84c11d544fb695173cf165eefeb61a22959ff430b6a0b3d2e247707d1997972d95d939f5f4346e4cb520569d0141de7c
6
+ metadata.gz: 144bec146061a9b5e90b56e3e2a9224bb293766e6393a1d2510e06ae22e1cfa90f45ee3bc2330375a8b6282b05a9bfb22be23bdba943aa12bb33ec59986835f0
7
+ data.tar.gz: 642076a0bd7256abea58eb90cdcf8e0aac49c746614745f449a97539876a2bc2eeea1ce25703aa1069ec7c326400ef016d268980ea664950457b4e4a018cb643
data/Gemfile CHANGED
@@ -1,2 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
+ gem 'redis-store-testing' #, path: '../testing'
data/README.md CHANGED
@@ -14,7 +14,7 @@ gem 'redis-actionpack'
14
14
  If you are using redis-store with Rails, consider using the [redis-rails gem](https://github.com/redis-store/redis-rails) instead. For standalone usage:
15
15
 
16
16
  ```ruby
17
- ActionController::Base.cache_store = ActionDispatch::Session::RedisSessionStore.new
17
+ ActionController::Base.cache_store = ActionDispatch::Session::RedisStore.new
18
18
  ```
19
19
 
20
20
  ## Running tests
@@ -18,13 +18,16 @@ module ActionDispatch
18
18
  private
19
19
 
20
20
  def set_cookie(env, session_id, cookie)
21
-
22
21
  if env.is_a? ActionDispatch::Request
23
22
  request = env
24
23
  else
25
24
  request = ActionDispatch::Request.new(env)
26
25
  end
27
- request.cookie_jar[key] = cookie
26
+ request.cookie_jar[key] = cookie.merge(cookie_options)
27
+ end
28
+
29
+ def cookie_options
30
+ @default_options.slice(:httponly, :secure)
28
31
  end
29
32
  end
30
33
  end
@@ -1,5 +1,5 @@
1
1
  class Redis
2
2
  module ActionPack
3
- VERSION = '5.0.1'
3
+ VERSION = '5.0.2'
4
4
  end
5
5
  end
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
20
  s.require_paths = ['lib']
21
21
 
22
- s.add_runtime_dependency 'redis-store', '>= 1.1.0', '< 1.4.0'
22
+ s.add_runtime_dependency 'redis-store', '>= 1.1.0', '< 2'
23
23
  s.add_runtime_dependency 'redis-rack', '>= 1', '< 3'
24
24
  s.add_runtime_dependency 'actionpack', '>= 4.0', '< 6'
25
25
 
@@ -19,12 +19,12 @@ class TestController < ActionController::Base
19
19
  end
20
20
 
21
21
  def get_session_value
22
- render :text => "foo: #{session[:foo].inspect}"
22
+ render plain: "foo: #{session[:foo].inspect}"
23
23
  end
24
24
 
25
25
  def get_session_id
26
26
  session_id = request.session_options[:id] || cookies["_session_id"]
27
- render :text => session_id
27
+ render plain: session_id
28
28
  end
29
29
 
30
30
  def call_reset_session
@@ -43,6 +43,56 @@ class RedisStoreIntegrationTest < ::ActionDispatch::IntegrationTest
43
43
  end
44
44
  end
45
45
 
46
+ test "should set a non-secure cookie by default" do
47
+ with_test_route_set do
48
+ https!
49
+
50
+ get '/set_session_value'
51
+ assert_response :success
52
+
53
+ cookie = cookies.instance_variable_get('@cookies').first
54
+
55
+ assert !cookie.secure?
56
+ end
57
+ end
58
+
59
+ test "should set a secure cookie when the 'secure' option is set" do
60
+ with_test_route_set(secure: true) do
61
+ https!
62
+
63
+ get '/set_session_value'
64
+ assert_response :success
65
+
66
+ cookie = cookies.instance_variable_get('@cookies').first
67
+
68
+ assert cookie.secure?
69
+ end
70
+ end
71
+
72
+ test "should set a http-only cookie by default" do
73
+ with_test_route_set do
74
+ get '/set_session_value'
75
+ assert_response :success
76
+
77
+ cookie = cookies.instance_variable_get('@cookies').first
78
+ options = cookie.instance_variable_get('@options')
79
+
80
+ assert options.key?('HttpOnly')
81
+ end
82
+ end
83
+
84
+ test "should set a non-http-only cookie when the 'httponlty' option is set to false" do
85
+ with_test_route_set(httponly: false) do
86
+ get '/set_session_value'
87
+ assert_response :success
88
+
89
+ cookie = cookies.instance_variable_get('@cookies').first
90
+ options = cookie.instance_variable_get('@options')
91
+
92
+ assert !options.key?('HttpOnly')
93
+ end
94
+ end
95
+
46
96
  test "should not send cookies on write, not read" do
47
97
  with_test_route_set do
48
98
  get '/get_session_value'
@@ -128,7 +178,7 @@ class RedisStoreIntegrationTest < ::ActionDispatch::IntegrationTest
128
178
 
129
179
  reset!
130
180
 
131
- get '/set_session_value', :_session_id => session_id
181
+ get '/set_session_value', headers: { _session_id: session_id }
132
182
  assert_response :success
133
183
  assert(cookies['_session_id'] != session_id)
134
184
  end
@@ -199,7 +249,7 @@ class RedisStoreIntegrationTest < ::ActionDispatch::IntegrationTest
199
249
  RoutedRackApp.new(routes || ActionDispatch::Routing::RouteSet.new) do |middleware|
200
250
  middleware.use ActionDispatch::DebugExceptions
201
251
  middleware.use ActionDispatch::Callbacks
202
- middleware.use ActionDispatch::ParamsParser
252
+ # middleware.use ActionDispatch::ParamsParser
203
253
  middleware.use ActionDispatch::Cookies
204
254
  middleware.use ActionDispatch::Flash
205
255
  middleware.use Rack::Head
@@ -211,7 +261,13 @@ class RedisStoreIntegrationTest < ::ActionDispatch::IntegrationTest
211
261
  def with_test_route_set(options = {})
212
262
  with_routing do |set|
213
263
  set.draw do
214
- get ':action', :to => ::TestController
264
+ get :no_session_access, to: 'test#no_session_access'
265
+ get :set_session_value, to: 'test#set_session_value'
266
+ get :set_session_value_with_expiry, to: 'test#set_session_value_with_expiry'
267
+ get :set_serialized_session_value, to: 'test#set_serialized_session_value'
268
+ get :get_session_value, to: 'test#get_session_value'
269
+ get :get_session_id, to: 'test#get_session_id'
270
+ get :call_reset_session, to: 'test#call_reset_session'
215
271
  end
216
272
  options = { :key => SessionKey }.merge!(options)
217
273
  @app = self.class.build_app(set) do |middleware|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis-actionpack
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.1
4
+ version: 5.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-04 00:00:00.000000000 Z
11
+ date: 2017-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis-store
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: 1.1.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: 1.4.0
22
+ version: '2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: 1.1.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 1.4.0
32
+ version: '2'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: redis-rack
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -207,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
207
207
  version: '0'
208
208
  requirements: []
209
209
  rubyforge_project: redis-actionpack
210
- rubygems_version: 2.6.6
210
+ rubygems_version: 2.6.11
211
211
  signing_key:
212
212
  specification_version: 4
213
213
  summary: Redis session store for ActionPack