redis-actionpack 5.0.2 → 5.3.0

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
- SHA1:
3
- metadata.gz: 3c307087a763d1e0b3954ec756cd840ed1df3e8b
4
- data.tar.gz: ee7c5f3361f0cf5c7e6009b033c6cb0524dbb0a2
2
+ SHA256:
3
+ metadata.gz: ffc2d2ea9d57234131426d376aa94d658e2cf707cde8e7144dcff4fef3939b11
4
+ data.tar.gz: b2a9f00678e5e34e4821ab1f718783db3d4eee0d164dcf7b6f1eb8a6e864a442
5
5
  SHA512:
6
- metadata.gz: 144bec146061a9b5e90b56e3e2a9224bb293766e6393a1d2510e06ae22e1cfa90f45ee3bc2330375a8b6282b05a9bfb22be23bdba943aa12bb33ec59986835f0
7
- data.tar.gz: 642076a0bd7256abea58eb90cdcf8e0aac49c746614745f449a97539876a2bc2eeea1ce25703aa1069ec7c326400ef016d268980ea664950457b4e4a018cb643
6
+ metadata.gz: f3cee21add22e6d2391a46db594203328dcafac71168d923faffac6da024aecab243d7f39ee3a3591dec78c1154618a5d98ba0ac1e60a91e353d8d47dc5d99ca
7
+ data.tar.gz: aa76e0b1f6bfadcc472f52481df23013f51a5678a8f3f736c669b87ca51047d8a2bd690fc12a2471e842561e90c24adf79feb0399adeec42eb87f01d3975b0d1
@@ -0,0 +1,2 @@
1
+ assignees:
2
+ - tubbo
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  Gemfile.lock
2
- test/gemfiles/*.lock
2
+ gemfiles/*.lock
3
3
  *.gem
4
4
  tmp/
5
5
  stdout
6
+ gemfiles/vendor
data/.travis.yml CHANGED
@@ -1,31 +1,33 @@
1
1
  language: ruby
2
2
  before_install: gem install bundler
3
- script: 'bundle exec rake'
3
+ script: bundle exec rake
4
4
  rvm:
5
- - 1.9.3
6
- - 2.0
7
- - 2.1
8
- - 2.2.4
9
- - 2.3.1
5
+ - 2.3
6
+ - 2.4
7
+ - 2.5
8
+ - 2.6
9
+ - 2.7
10
10
  - ruby-head
11
-
11
+ - jruby-head
12
12
  gemfile:
13
- - test/gemfiles/Gemfile.rails-4.0.x
14
- - test/gemfiles/Gemfile.rails-4.1.x
15
- - test/gemfiles/Gemfile.rails-4.2.x
16
- - test/gemfiles/Gemfile.rails-5.0.x
17
-
13
+ - gemfiles/rails_5.0.x.gemfile
14
+ - gemfiles/rails_5.1.x.gemfile
15
+ - gemfiles/rails_5.2.x.gemfile
16
+ - gemfiles/rails_6.0.x.gemfile
18
17
  matrix:
19
18
  exclude:
20
- - rvm: 1.9.3
21
- gemfile: test/gemfiles/Gemfile.rails-5.0.x
22
- - rvm: 2.0
23
- gemfile: test/gemfiles/Gemfile.rails-5.0.x
24
- - rvm: 2.1
25
- gemfile: test/gemfiles/Gemfile.rails-5.0.x
26
- - rvm: ruby-head
27
- gemfile: test/gemfiles/Gemfile.rails-4.0.x
28
- - rvm: ruby-head
29
- gemfile: test/gemfiles/Gemfile.rails-4.1.x
19
+ - rvm: 2.3
20
+ gemfile: gemfiles/rails_6.0.x.gemfile
21
+ - rvm: 2.4
22
+ gemfile: gemfiles/rails_6.0.x.gemfile
30
23
  allow_failures:
31
24
  - rvm: ruby-head
25
+ - rvm: jruby-head
26
+ deploy:
27
+ provider: rubygems
28
+ api_key:
29
+ secure: edRiCZPzp3pqBQn3hjeG5WqUNf0eEb8/Ea2VY0jJfQfOHxOYJSATkpdZ5xxOL1YIefk7ERUURY3dKwS/qdSIF2h954QPeOChLTlSaWtFjSNAZIAhH7Ks4vN/q1i7JAWtJRCBOtHlAe9AJj7CvHpUsry3+oHsJ+gXaaA9lntbheE=
30
+ gem: redis-actionpack
31
+ on:
32
+ tags: true
33
+ repo: redis-store/redis-actionpack
data/Appraisals ADDED
@@ -0,0 +1,23 @@
1
+ appraise 'rails-5.0.x' do
2
+ gem 'redis-store'
3
+ gem 'redis-rack'
4
+ gem 'actionpack', '~> 5.0.0'
5
+ end
6
+
7
+ appraise 'rails-5.1.x' do
8
+ gem 'redis-store'
9
+ gem 'redis-rack'
10
+ gem 'actionpack', '~> 5.1.0'
11
+ end
12
+
13
+ appraise 'rails-5.2.x' do
14
+ gem 'redis-store'
15
+ gem 'redis-rack'
16
+ gem 'actionpack', '~> 5.1.0'
17
+ end
18
+
19
+ appraise 'rails-6.0.x' do
20
+ gem 'redis-store'
21
+ gem 'redis-rack'
22
+ gem 'actionpack', '~> 6.0.0'
23
+ end
data/CHANGELOG.md ADDED
@@ -0,0 +1,252 @@
1
+ v5.2.0 (2020-01-13)
2
+ --------------------------------------------------------------------------------
3
+
4
+ * Require latest version of redis-rack
5
+ Tom Scott
6
+
7
+ * Update version to v5.2.0 final
8
+ Tom Scott
9
+
10
+ * Fix for rack 2.0.8 (#28)
11
+
12
+ * Fix for rack 2.0.8
13
+ * add new redis-rack for tests
14
+ * add new ruby 2.7 for tests
15
+ Alexey Vasiliev
16
+
17
+ * v5.2.0.pre: Support Signed/Encrypted Cookies
18
+ Tom Scott
19
+
20
+ * Update README with info about signed cookies
21
+ Tom Scott
22
+
23
+ * Support Signed and Encrypted Cookie Storage (#27)
24
+
25
+ With the `:signed` option passed into the Redis session store, you can
26
+ now ensure that sessions will be set up in the browser using a
27
+ signed/encrypted cookie. This prevents user tampering by changing their
28
+ session ID or the data within the cookie.
29
+
30
+ Closes #21
31
+ Tom Scott
32
+
33
+ v5.1.0
34
+ --------------------------------------------------------------------------------
35
+
36
+ * Add appraisal to test on multiple versions of Rails (#18)
37
+
38
+ Update the build configuration to exclude older versions we no longer support and use Appraisal to test against multiple gemfiles/rubies in CI.
39
+
40
+ * Remove old gemfiles
41
+ * Update appraisal gemfiles
42
+ * Exclude some builds
43
+ * Install bundler on older versions of Ruby
44
+ * Prevent updating bundler to a non-compatible version
45
+ * Remove lockfiles from the repo
46
+ * Drop support for old versions of Rails & Ruby
47
+ * Automatically assign issues to @tubbo when they are created
48
+ Tom Scott
49
+
50
+ * Reduce build scope to only support Rails 5 & 6
51
+ Tom Scott
52
+
53
+ * v5.1.0: Support Rails 6
54
+ Tom Scott
55
+
56
+ * Bump max version constraint on actionpack (#25)
57
+
58
+ This change allows this gem to work with Rails 6.
59
+ Arjun Radhakrishnan
60
+
61
+ * Fix build
62
+ Tom Scott
63
+
64
+ * README: Use SVG badges
65
+ Olle Jonsson
66
+
67
+ * Gemspec: Drop EOL'd property rubyforge_project
68
+ Olle Jonsson
69
+
70
+ * Loosen Bundler dependency
71
+ Tom Scott
72
+
73
+ * Update testing matrix
74
+ Tom Scott
75
+
76
+ * Automatically release to RubyGems when new tags are pushed to GitHub
77
+ Tom Scott
78
+
79
+ * Add code owners
80
+ Tom Scott
81
+
82
+ * Clarify usage of gem in the README
83
+ Tom Scott
84
+
85
+ * Fix rails 4 build failure
86
+ Tom Scott
87
+
88
+ * Don't always use local testing gem
89
+ Tom Scott
90
+
91
+ v5.0.2
92
+ --------------------------------------------------------------------------------
93
+
94
+ * v5.0.2: Loosen dependencies to work with new minor redis-store versions
95
+ Tom Scott
96
+
97
+ * Update class name in README
98
+ Tom Scott
99
+
100
+ * Loosen redis-store dependency
101
+ Tom Scott
102
+
103
+ * Update tests to remove deprecation warnings
104
+ Tom Scott
105
+
106
+ * Remove testing code from Gemfile
107
+ Tom Scott
108
+
109
+ v5.0.1
110
+ --------------------------------------------------------------------------------
111
+
112
+ * Release v5.0.1
113
+ Tom Scott
114
+
115
+ * Respect cookie options in setting cookie with session ID
116
+ Michael Dawson
117
+
118
+ * Update tests and gemfiles to work on all supported versions.
119
+
120
+ Do not depend on pre-release versions of gems.
121
+
122
+ Move tests to use minitest-rails to alleviate some of the dependency hell.
123
+
124
+ Remove version_test.rb because that's dumb.
125
+ Connor Shea
126
+
127
+ v5.0.0
128
+ --------------------------------------------------------------------------------
129
+
130
+ * Update README.md (#12)
131
+ Nicolas
132
+
133
+ * Bump to 5.0.0
134
+ Ryan Bigg
135
+
136
+ * Fix gem dependency versions
137
+ Tom Scott
138
+
139
+ * Pre-Release of v5.0.0
140
+ Tom Scott
141
+
142
+ * Disable rbx-19mode on Travis CI
143
+
144
+ This syntax is no longer supported by Travis, so we aren't getting
145
+ reliable builds and thus must disable its use, at least for now. We were
146
+ getting problems on the Rails 4.0 and 4.1 Gemfiles.
147
+
148
+ More information is available at
149
+ https://travis-ci.org/redis-store/redis-actionpack/builds/112702496
150
+ Tom Scott
151
+
152
+ * exclue jruby-19 from rails5
153
+ Marc Roberts
154
+
155
+ * bump ruby 2.2 version in travis, rails5 need at least 2.2.4
156
+ Marc Roberts
157
+
158
+ * env is already an ActionDispatch::Request in rails5
159
+ Marc Roberts
160
+
161
+ * specify version of minitest-spec-rails
162
+ Marc Roberts
163
+
164
+ * need all of rails in gemfile for rails5
165
+ Marc Roberts
166
+
167
+ * use redis-store from github until a new gem is cut
168
+ Marc Roberts
169
+
170
+ * prevent rails5 deprecation warnings
171
+ Marc Roberts
172
+
173
+ * don't use mini_backtrace for now, incompatible with rails5
174
+ Marc Roberts
175
+
176
+ * bump rails5 gem version up to beta3
177
+ Marc Roberts
178
+
179
+ * use redis-rack via github for rails 5.0
180
+ Marc Roberts
181
+
182
+ * use minitest-spec-rails for consistency
183
+ Marc Roberts
184
+
185
+ * Merge remote-tracking branch 'upstream/master'
186
+ Miles Matthias
187
+
188
+ * update mini_specunit to minitest-spec-rails
189
+ Marc Roberts
190
+
191
+ * ignore .lock files in gemfiles
192
+ Marc Roberts
193
+
194
+ * correct gemfiles names in travis excludes
195
+ Marc Roberts
196
+
197
+ * fix gemspec path in gemfiles
198
+ Marc Roberts
199
+
200
+ * add multiple gemfiles for rails 4.0, 4.1, 4.2 and 5
201
+ Marc Roberts
202
+
203
+ * remove 1.9, add 2.1/2.2 rubies to travis
204
+ Marc Roberts
205
+
206
+ * Loosen dependancy on actionpack to support Rails 5
207
+ Marc Roberts
208
+
209
+ * travis ci add before_install
210
+ shiro16
211
+
212
+ * fixed travis.yml
213
+ shiro16
214
+
215
+ * travis ci add Ruby 2.1 and 2.2, 2.3.0
216
+ shiro16
217
+
218
+ * ignore stdout, file resulted from running tests
219
+ Miles Matthias
220
+
221
+ * Revert "Update README.md"
222
+
223
+ This reverts commit a4c7f94ed6283b28a34079b5a4917897d6a2b77d.
224
+ Ryan Bigg
225
+
226
+ * Update README.md
227
+ Ryan Bigg
228
+
229
+ * These silly version tests
230
+ Ryan Bigg
231
+
232
+ v4.0.1
233
+ --------------------------------------------------------------------------------
234
+ G
235
+ * Bump to 4.0.1
236
+ Ryan Bigg
237
+
238
+ * support the same values for domain as rails' session stores usually do
239
+
240
+ * needed to change the tests based on test in rails, so the options for the session store could be changed per test
241
+
242
+ Fixes #2
243
+ Michael Reinsch
244
+
245
+ v4.0.0
246
+ --------------------------------------------------------------------------------
247
+
248
+ * Enable CI
249
+ Luca Guidi
250
+
251
+ * Move from jodosha/redis-store
252
+ Luca Guidi
data/CODEOWNERS ADDED
@@ -0,0 +1 @@
1
+ * @tubbo
data/Gemfile CHANGED
@@ -1,3 +1,10 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
- gem 'redis-store-testing' #, path: '../testing'
3
+
4
+ gem 'rake', '>= 12.3.3'
5
+ gem 'bundler', '~> 2.1'
6
+ gem 'mocha', '~> 0.14.0', require: 'mocha/setup'
7
+ gem 'tzinfo', '~> 1.2'
8
+ gem 'appraisal', '~> 2.2'
9
+ gem 'redis-store-testing', github: 'redis-store/testing'
10
+ gem 'minitest-rails'
data/README.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  __`redis-actionpack`__ provides a session store for __ActionPack__, specifically for __ActionDispatch__. See the main [redis-store readme](https://github.com/redis-store/redis-store) for general guidelines.
4
4
 
5
+ For guidelines on using our underlying cache store, see the main [redis-store readme](https://github.com/redis-store/redis-store).
6
+
7
+ For information on how to use this library in a Rails app, see the [documentation for redis-rails](https://github.com/redis-store/redis-rails).
8
+
9
+ If, for some reason, you're using `ActionDispatch` and not in a Rails app, read on to learn how to install/use this gem by itself!
10
+
5
11
  ## Installation
6
12
 
7
13
  ```ruby
@@ -11,12 +17,35 @@ gem 'redis-actionpack'
11
17
 
12
18
  ## Usage
13
19
 
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:
20
+ If you are using redis-store with Rails, head on over to the
21
+ [redis-rails README](https://github.com/redis-store/redis-rails#session-storage) to
22
+ learn how to integrate this gem into your Rails application.
23
+
24
+ For standalone usage:
15
25
 
16
26
  ```ruby
17
- ActionController::Base.cache_store = ActionDispatch::Session::RedisStore.new
27
+ ActionController::Base.session_store = :redis_store,
28
+ servers: %w(redis://localhost:6379/0/session),
29
+ expire_after: 90.minutes,
30
+ key: '_my_application_session',
31
+ threadsafe: false,
32
+ secure: true
18
33
  ```
19
34
 
35
+ A brief run-down of these options...
36
+
37
+ - **servers** is an Array of Redis server URLs that we will attempt to find
38
+ data from.
39
+ - **expire_after** is the default TTL of session keys. This is also set
40
+ as the expiry time of any cookies generated by the session store.
41
+ - **key** is the name of the cookie on the client side
42
+ - **threadsafe** is for applications that run on multiple instances. Set
43
+ this to `false` if you want to disable the global mutex lock on
44
+ session data. It's `true` by default, meaning the mutex will be
45
+ enabled.
46
+ - **secure** ensures HTTP cookies are transferred from server to client
47
+ on a secure (HTTPS) connection
48
+
20
49
  ## Running tests
21
50
 
22
51
  ```shell
@@ -31,9 +60,9 @@ If you are on **Snow Leopard** you have to run `env ARCHFLAGS="-arch x86_64" bun
31
60
 
32
61
  ## Status
33
62
 
34
- [![Gem Version](https://badge.fury.io/rb/redis-actionpack.png)](http://badge.fury.io/rb/redis-actionpack)
35
- [![Build Status](https://secure.travis-ci.org/redis-store/redis-actionpack.png?branch=master)](http://travis-ci.org/redis-store/redis-actionpack?branch=master)
36
- [![Code Climate](https://codeclimate.com/github/redis-store/redis-actionpack.png)](https://codeclimate.com/github/redis-store/redis-actionpack)
63
+ [![Gem Version](https://badge.fury.io/rb/redis-actionpack.svg)](http://badge.fury.io/rb/redis-actionpack)
64
+ [![Build Status](https://secure.travis-ci.org/redis-store/redis-actionpack.svg?branch=master)](http://travis-ci.org/redis-store/redis-actionpack?branch=master)
65
+ [![Code Climate](https://codeclimate.com/github/redis-store/redis-actionpack.svg)](https://codeclimate.com/github/redis-store/redis-actionpack)
37
66
 
38
67
  ## Copyright
39
68
 
@@ -0,0 +1 @@
1
+ puts '-v 1.13.1' if Gem::Version.new(RUBY_VERSION) <= Gem::Version.new('2.3.0')
@@ -0,0 +1,16 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake", ">= 12.3.3"
6
+ gem "bundler", "~> 2.1"
7
+ gem "mocha", "~> 0.14.0", require: "mocha/setup"
8
+ gem "tzinfo", "~> 1.2"
9
+ gem "appraisal", "~> 2.2"
10
+ gem "redis-store-testing", github: "redis-store/testing"
11
+ gem "minitest-rails"
12
+ gem "redis-store"
13
+ gem "redis-rack"
14
+ gem "actionpack", "~> 5.0.0"
15
+
16
+ gemspec path: "../"
@@ -0,0 +1,16 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake", ">= 12.3.3"
6
+ gem "bundler", "~> 2.1"
7
+ gem "mocha", "~> 0.14.0", require: "mocha/setup"
8
+ gem "tzinfo", "~> 1.2"
9
+ gem "appraisal", "~> 2.2"
10
+ gem "redis-store-testing", github: "redis-store/testing"
11
+ gem "minitest-rails"
12
+ gem "redis-store"
13
+ gem "redis-rack"
14
+ gem "actionpack", "~> 5.1.0"
15
+
16
+ gemspec path: "../"
@@ -0,0 +1,16 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake", ">= 12.3.3"
6
+ gem "bundler", "~> 2.1"
7
+ gem "mocha", "~> 0.14.0", require: "mocha/setup"
8
+ gem "tzinfo", "~> 1.2"
9
+ gem "appraisal", "~> 2.2"
10
+ gem "redis-store-testing", github: "redis-store/testing"
11
+ gem "minitest-rails"
12
+ gem "redis-store"
13
+ gem "redis-rack"
14
+ gem "actionpack", "~> 5.1.0"
15
+
16
+ gemspec path: "../"
@@ -0,0 +1,16 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake", ">= 12.3.3"
6
+ gem "bundler", "~> 2.1"
7
+ gem "mocha", "~> 0.14.0", require: "mocha/setup"
8
+ gem "tzinfo", "~> 1.2"
9
+ gem "appraisal", "~> 2.2"
10
+ gem "redis-store-testing", github: "redis-store/testing"
11
+ gem "minitest-rails"
12
+ gem "redis-store"
13
+ gem "redis-rack"
14
+ gem "actionpack", "~> 6.0.0"
15
+
16
+ gemspec path: "../"
@@ -1,9 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'redis-store'
2
4
  require 'redis-rack'
3
5
  require 'action_dispatch/middleware/session/abstract_store'
4
6
 
5
7
  module ActionDispatch
6
8
  module Session
9
+ # Session storage in Redis, using +Redis::Rack+ as a basis.
7
10
  class RedisStore < Rack::Session::Redis
8
11
  include Compatibility
9
12
  include StaleSessionCheck
@@ -15,20 +18,37 @@ module ActionDispatch
15
18
  super
16
19
  end
17
20
 
21
+ def generate_sid
22
+ Rack::Session::SessionId.new(super)
23
+ end
24
+
18
25
  private
19
26
 
20
- def set_cookie(env, session_id, cookie)
21
- if env.is_a? ActionDispatch::Request
22
- request = env
23
- else
24
- request = ActionDispatch::Request.new(env)
25
- end
26
- request.cookie_jar[key] = cookie.merge(cookie_options)
27
+ def set_cookie(env, _session_id, cookie)
28
+ request = wrap_in_request(env)
29
+ cookie_jar(request)[key] = cookie.merge(cookie_options)
30
+ end
31
+
32
+ def get_cookie(request)
33
+ cookie_jar(request)[key]
34
+ end
35
+
36
+ def wrap_in_request(env)
37
+ return env if env.is_a?(ActionDispatch::Request)
38
+ ActionDispatch::Request.new(env)
27
39
  end
28
40
 
29
41
  def cookie_options
30
42
  @default_options.slice(:httponly, :secure)
31
43
  end
44
+
45
+ def cookie_jar(request)
46
+ if @default_options[:signed]
47
+ request.cookie_jar.signed_or_encrypted
48
+ else
49
+ request.cookie_jar
50
+ end
51
+ end
32
52
  end
33
53
  end
34
54
  end
@@ -1,5 +1,5 @@
1
1
  class Redis
2
2
  module ActionPack
3
- VERSION = '5.0.2'
3
+ VERSION = '5.3.0'
4
4
  end
5
5
  end
@@ -9,25 +9,16 @@ Gem::Specification.new do |s|
9
9
  s.email = ['me@lucaguidi.com']
10
10
  s.homepage = 'http://redis-store.org/redis-actionpack'
11
11
  s.summary = %q{Redis session store for ActionPack}
12
- s.description = %q{Redis session store for ActionPack}
12
+ s.description = "#{s.summary}. Used for storing the Rails session in Redis."
13
13
  s.license = 'MIT'
14
14
 
15
- s.rubyforge_project = 'redis-actionpack'
16
-
17
15
  s.files = `git ls-files`.split("\n")
18
16
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.executables = []
20
18
  s.require_paths = ['lib']
19
+ s.required_ruby_version = '>= 2.3.0'
21
20
 
22
21
  s.add_runtime_dependency 'redis-store', '>= 1.1.0', '< 2'
23
- s.add_runtime_dependency 'redis-rack', '>= 1', '< 3'
24
- s.add_runtime_dependency 'actionpack', '>= 4.0', '< 6'
25
-
26
- s.add_development_dependency 'rake', '~> 10'
27
- s.add_development_dependency 'bundler', '~> 1.3'
28
- s.add_development_dependency 'mocha', '~> 0.14.0'
29
- s.add_development_dependency 'minitest-rails'
30
- s.add_development_dependency 'tzinfo'
31
- # s.add_development_dependency 'mini_backtrace'
32
- s.add_development_dependency 'redis-store-testing'
22
+ s.add_runtime_dependency 'redis-rack', '>= 2.1.0', '< 3'
23
+ s.add_runtime_dependency 'actionpack', '>= 5', '< 8'
33
24
  end
@@ -1,4 +1,8 @@
1
1
  class TestController < ActionController::Base
2
+ def self.actions
3
+ public_instance_methods - ActionController::Base.public_instance_methods
4
+ end
5
+
2
6
  def no_session_access
3
7
  head :ok
4
8
  end
File without changes
@@ -0,0 +1 @@
1
+ <h1>hello world</h1>
@@ -1,3 +1,5 @@
1
1
  Dummy::Application.routes.draw do
2
- get ':action', :to => TestController
2
+ TestController.actions.each do |action|
3
+ get action, to: ['test', action].join('#')
4
+ end
3
5
  end
@@ -5,7 +5,6 @@ gem 'redis-store'
5
5
 
6
6
  gem 'redis-rack', github: 'redis-store/redis-rack'
7
7
 
8
- gem 'actionpack', '~> 5.0.0'
8
+ gem 'actionpack', '~> 6.0.0'
9
9
 
10
10
  gem 'minitest-rails'
11
-
@@ -69,6 +69,20 @@ class RedisStoreIntegrationTest < ::ActionDispatch::IntegrationTest
69
69
  end
70
70
  end
71
71
 
72
+ test "should set a signed cookie when the 'signed' option is set" do
73
+ with_test_route_set(signed: true) do
74
+ https!
75
+
76
+ get '/set_session_value'
77
+ assert_response :success
78
+
79
+ cookie = cookies.instance_variable_get('@cookies').first
80
+
81
+ assert_includes cookie.raw, '_session_id='
82
+ end
83
+ end
84
+
85
+
72
86
  test "should set a http-only cookie by default" do
73
87
  with_test_route_set do
74
88
  get '/set_session_value'
@@ -238,8 +252,17 @@ class RedisStoreIntegrationTest < ::ActionDispatch::IntegrationTest
238
252
  def initialize(routes, &blk)
239
253
  @routes = routes
240
254
  @stack = ActionDispatch::MiddlewareStack.new(&blk).build(@routes)
255
+ @secret = SecureRandom.hex
256
+ @key_generator = ActiveSupport::CachingKeyGenerator.new(
257
+ ActiveSupport::KeyGenerator.new(@secret, iterations: 2)
258
+ )
241
259
  end
242
260
  def call(env)
261
+ env[ActionDispatch::Cookies::GENERATOR_KEY] = @key_generator
262
+ env[ActionDispatch::Cookies::SIGNED_COOKIE_SALT] = SecureRandom.hex
263
+ if defined? ActionDispatch::Cookies::COOKIES_ROTATIONS
264
+ env[ActionDispatch::Cookies::COOKIES_ROTATIONS] = ActiveSupport::Messages::RotationConfiguration.new
265
+ end
243
266
  @stack.call(env)
244
267
  end
245
268
  end
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.2
4
+ version: 5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-16 00:00:00.000000000 Z
11
+ date: 2022-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis-store
@@ -36,7 +36,7 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '1'
39
+ version: 2.1.0
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '3'
@@ -46,7 +46,7 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: '1'
49
+ version: 2.1.0
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: '3'
@@ -56,117 +56,43 @@ dependencies:
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: '4.0'
59
+ version: '5'
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: '6'
62
+ version: '8'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: '4.0'
69
+ version: '5'
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
- version: '6'
73
- - !ruby/object:Gem::Dependency
74
- name: rake
75
- requirement: !ruby/object:Gem::Requirement
76
- requirements:
77
- - - "~>"
78
- - !ruby/object:Gem::Version
79
- version: '10'
80
- type: :development
81
- prerelease: false
82
- version_requirements: !ruby/object:Gem::Requirement
83
- requirements:
84
- - - "~>"
85
- - !ruby/object:Gem::Version
86
- version: '10'
87
- - !ruby/object:Gem::Dependency
88
- name: bundler
89
- requirement: !ruby/object:Gem::Requirement
90
- requirements:
91
- - - "~>"
92
- - !ruby/object:Gem::Version
93
- version: '1.3'
94
- type: :development
95
- prerelease: false
96
- version_requirements: !ruby/object:Gem::Requirement
97
- requirements:
98
- - - "~>"
99
- - !ruby/object:Gem::Version
100
- version: '1.3'
101
- - !ruby/object:Gem::Dependency
102
- name: mocha
103
- requirement: !ruby/object:Gem::Requirement
104
- requirements:
105
- - - "~>"
106
- - !ruby/object:Gem::Version
107
- version: 0.14.0
108
- type: :development
109
- prerelease: false
110
- version_requirements: !ruby/object:Gem::Requirement
111
- requirements:
112
- - - "~>"
113
- - !ruby/object:Gem::Version
114
- version: 0.14.0
115
- - !ruby/object:Gem::Dependency
116
- name: minitest-rails
117
- requirement: !ruby/object:Gem::Requirement
118
- requirements:
119
- - - ">="
120
- - !ruby/object:Gem::Version
121
- version: '0'
122
- type: :development
123
- prerelease: false
124
- version_requirements: !ruby/object:Gem::Requirement
125
- requirements:
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- version: '0'
129
- - !ruby/object:Gem::Dependency
130
- name: tzinfo
131
- requirement: !ruby/object:Gem::Requirement
132
- requirements:
133
- - - ">="
134
- - !ruby/object:Gem::Version
135
- version: '0'
136
- type: :development
137
- prerelease: false
138
- version_requirements: !ruby/object:Gem::Requirement
139
- requirements:
140
- - - ">="
141
- - !ruby/object:Gem::Version
142
- version: '0'
143
- - !ruby/object:Gem::Dependency
144
- name: redis-store-testing
145
- requirement: !ruby/object:Gem::Requirement
146
- requirements:
147
- - - ">="
148
- - !ruby/object:Gem::Version
149
- version: '0'
150
- type: :development
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- requirements:
154
- - - ">="
155
- - !ruby/object:Gem::Version
156
- version: '0'
157
- description: Redis session store for ActionPack
72
+ version: '8'
73
+ description: Redis session store for ActionPack. Used for storing the Rails session
74
+ in Redis.
158
75
  email:
159
76
  - me@lucaguidi.com
160
77
  executables: []
161
78
  extensions: []
162
79
  extra_rdoc_files: []
163
80
  files:
81
+ - ".github/auto-assign-issues.yml"
164
82
  - ".gitignore"
165
83
  - ".travis.yml"
84
+ - Appraisals
85
+ - CHANGELOG.md
86
+ - CODEOWNERS
166
87
  - Gemfile
167
88
  - MIT-LICENSE
168
89
  - README.md
169
90
  - Rakefile
91
+ - bin/bundler-version-options.rb
92
+ - gemfiles/rails_5.0.x.gemfile
93
+ - gemfiles/rails_5.1.x.gemfile
94
+ - gemfiles/rails_5.2.x.gemfile
95
+ - gemfiles/rails_6.0.x.gemfile
170
96
  - lib/action_dispatch/middleware/session/redis_store.rb
171
97
  - lib/redis-actionpack.rb
172
98
  - lib/redis/actionpack/version.rb
@@ -174,6 +100,8 @@ files:
174
100
  - test/dummy/.gitignore
175
101
  - test/dummy/Rakefile
176
102
  - test/dummy/app/controllers/test_controller.rb
103
+ - test/dummy/app/views/test/get_session_id.html.erb
104
+ - test/dummy/app/views/test/get_session_value.html.erb
177
105
  - test/dummy/config.ru
178
106
  - test/dummy/config/application.rb
179
107
  - test/dummy/config/boot.rb
@@ -181,17 +109,14 @@ files:
181
109
  - test/dummy/config/routes.rb
182
110
  - test/dummy/script/rails
183
111
  - test/fixtures/session_autoload_test/session_autoload_test/foo.rb
184
- - test/gemfiles/Gemfile.rails-4.0.x
185
- - test/gemfiles/Gemfile.rails-4.1.x
186
- - test/gemfiles/Gemfile.rails-4.2.x
187
- - test/gemfiles/Gemfile.rails-5.0.x
112
+ - test/gemfiles/Gemfile.rails-6.0.x
188
113
  - test/integration/redis_store_integration_test.rb
189
114
  - test/test_helper.rb
190
115
  homepage: http://redis-store.org/redis-actionpack
191
116
  licenses:
192
117
  - MIT
193
118
  metadata: {}
194
- post_install_message:
119
+ post_install_message:
195
120
  rdoc_options: []
196
121
  require_paths:
197
122
  - lib
@@ -199,22 +124,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
199
124
  requirements:
200
125
  - - ">="
201
126
  - !ruby/object:Gem::Version
202
- version: '0'
127
+ version: 2.3.0
203
128
  required_rubygems_version: !ruby/object:Gem::Requirement
204
129
  requirements:
205
130
  - - ">="
206
131
  - !ruby/object:Gem::Version
207
132
  version: '0'
208
133
  requirements: []
209
- rubyforge_project: redis-actionpack
210
- rubygems_version: 2.6.11
211
- signing_key:
134
+ rubygems_version: 3.2.11
135
+ signing_key:
212
136
  specification_version: 4
213
137
  summary: Redis session store for ActionPack
214
138
  test_files:
215
139
  - test/dummy/.gitignore
216
140
  - test/dummy/Rakefile
217
141
  - test/dummy/app/controllers/test_controller.rb
142
+ - test/dummy/app/views/test/get_session_id.html.erb
143
+ - test/dummy/app/views/test/get_session_value.html.erb
218
144
  - test/dummy/config.ru
219
145
  - test/dummy/config/application.rb
220
146
  - test/dummy/config/boot.rb
@@ -222,9 +148,6 @@ test_files:
222
148
  - test/dummy/config/routes.rb
223
149
  - test/dummy/script/rails
224
150
  - test/fixtures/session_autoload_test/session_autoload_test/foo.rb
225
- - test/gemfiles/Gemfile.rails-4.0.x
226
- - test/gemfiles/Gemfile.rails-4.1.x
227
- - test/gemfiles/Gemfile.rails-4.2.x
228
- - test/gemfiles/Gemfile.rails-5.0.x
151
+ - test/gemfiles/Gemfile.rails-6.0.x
229
152
  - test/integration/redis_store_integration_test.rb
230
153
  - test/test_helper.rb
@@ -1,10 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec :path => './../..'
3
-
4
- gem 'redis-store', '~> 1.1.0'
5
-
6
- gem 'redis-rack', '~> 1.5.0'
7
-
8
- gem 'actionpack', '~> 4.0.0'
9
-
10
- gem 'minitest-rails', '~> 1.0.0'
@@ -1,10 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec :path => './../..'
3
-
4
- gem 'redis-store', '~> 1.1.0'
5
-
6
- gem 'redis-rack', '~> 1.5.0'
7
-
8
- gem 'actionpack', '~> 4.1.0'
9
-
10
- gem 'minitest-rails', '~> 2.2.0'
@@ -1,10 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec :path => './../..'
3
-
4
- gem 'redis-store', '~> 1.1.0'
5
-
6
- gem 'redis-rack', '~> 1.5.0'
7
-
8
- gem 'actionpack', '~> 4.2.0'
9
-
10
- gem 'minitest-rails', '~> 2.2.0'