redis_session_storage 0.0.5 → 0.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 +4 -4
- data/lib/redis_session_storage/version.rb +3 -0
- data/lib/{redis_session_store.rb → redis_session_storage.rb} +84 -84
- data/test/dummy/config/application.rb +22 -23
- data/test/dummy/config/initializers/session_store.rb +3 -3
- data/test/dummy/log/development.log +54 -0
- metadata +3 -3
- data/lib/redis_session_store/version.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18106df05417980ef80b2d22d712e1f1a2d21a2b
|
4
|
+
data.tar.gz: 065ebaab27395b25cf6b3fb4a6ab113c1b349187
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f48bf7391485ef106c5c4489e8980846e134dc01280a5b710cc564959a10dc43fbfe9d2f5dba65a031098b3a0864dc7d4e0ca60b664b7be7247ab732b97e3790
|
7
|
+
data.tar.gz: 3c3b11f51edc1e8b3cf39e481adccfbda362eb7a9e3fa614cdd845ac84e491740e94822b6c7307f5ee2953380dacb56362dab0d533ba1b412c254d8d04d7752e
|
@@ -1,84 +1,84 @@
|
|
1
|
-
require 'redis'
|
2
|
-
module ActionDispatch
|
3
|
-
module Session
|
4
|
-
class
|
5
|
-
|
6
|
-
def initialize(app, options = {})
|
7
|
-
host = options[:host] || '127.0.0.1'
|
8
|
-
port = options[:port] || 6379
|
9
|
-
db = options[:db] || 0
|
10
|
-
@prefix = options[:key] || ""
|
11
|
-
@serializer = determine_serializer(options[:serializer])
|
12
|
-
@redis = Redis.new(:host => host, :port => port, :db => db)
|
13
|
-
return super
|
14
|
-
end
|
15
|
-
|
16
|
-
def get_session(env, session_id)
|
17
|
-
session_id ||= generate_sid()
|
18
|
-
session_data = get_redis_session(prefixed_key(session_id)) || {}
|
19
|
-
return [session_id, session_data]
|
20
|
-
end
|
21
|
-
|
22
|
-
def set_session(env, session_id, session_data, options)
|
23
|
-
begin
|
24
|
-
key = prefixed_key(session_id)
|
25
|
-
if session_data
|
26
|
-
if(options[:expire_after])
|
27
|
-
@redis.setex(key, options[:expire_after], @serializer.dump(session_data))
|
28
|
-
else
|
29
|
-
@redis.set(key, @serializer.dump(session_data))
|
30
|
-
end
|
31
|
-
else
|
32
|
-
@redis.del(key)
|
33
|
-
end
|
34
|
-
return session_id
|
35
|
-
rescue => e
|
36
|
-
Rails.logger.error("SessionDispatch::RedisSession - Unable to set redis session.")
|
37
|
-
return false
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def destroy_session(env, session_id, options)
|
42
|
-
@redis.del(prefixed_key(session_id))
|
43
|
-
return generate_sid()
|
44
|
-
end
|
45
|
-
|
46
|
-
def determine_serializer(serializer)
|
47
|
-
if serializer == :json
|
48
|
-
serial = JsonSerializer
|
49
|
-
else
|
50
|
-
serial = Marshal
|
51
|
-
end
|
52
|
-
return serial
|
53
|
-
end
|
54
|
-
|
55
|
-
private
|
56
|
-
|
57
|
-
def prefixed_key(sid)
|
58
|
-
return "#{@prefix}#{sid}"
|
59
|
-
end
|
60
|
-
|
61
|
-
def get_redis_session(key)
|
62
|
-
begin
|
63
|
-
data = @redis.get(key)
|
64
|
-
data ? @serializer.load(data) : nil
|
65
|
-
rescue => e
|
66
|
-
Rails.logger.error("SessionDispatch::RedisSession - Unable to retrieve redis session.")
|
67
|
-
return nil
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
class JsonSerializer
|
72
|
-
def self.load(value)
|
73
|
-
return JSON.parse(value, quirks_mode: true)
|
74
|
-
end
|
75
|
-
|
76
|
-
def self.dump(value)
|
77
|
-
return JSON.generate(value, quirks_mode: true)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
1
|
+
require 'redis'
|
2
|
+
module ActionDispatch
|
3
|
+
module Session
|
4
|
+
class RedisSessionStorage < AbstractStore
|
5
|
+
|
6
|
+
def initialize(app, options = {})
|
7
|
+
host = options[:host] || '127.0.0.1'
|
8
|
+
port = options[:port] || 6379
|
9
|
+
db = options[:db] || 0
|
10
|
+
@prefix = options[:key] || ""
|
11
|
+
@serializer = determine_serializer(options[:serializer])
|
12
|
+
@redis = Redis.new(:host => host, :port => port, :db => db)
|
13
|
+
return super
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_session(env, session_id)
|
17
|
+
session_id ||= generate_sid()
|
18
|
+
session_data = get_redis_session(prefixed_key(session_id)) || {}
|
19
|
+
return [session_id, session_data]
|
20
|
+
end
|
21
|
+
|
22
|
+
def set_session(env, session_id, session_data, options)
|
23
|
+
begin
|
24
|
+
key = prefixed_key(session_id)
|
25
|
+
if session_data
|
26
|
+
if(options[:expire_after])
|
27
|
+
@redis.setex(key, options[:expire_after], @serializer.dump(session_data))
|
28
|
+
else
|
29
|
+
@redis.set(key, @serializer.dump(session_data))
|
30
|
+
end
|
31
|
+
else
|
32
|
+
@redis.del(key)
|
33
|
+
end
|
34
|
+
return session_id
|
35
|
+
rescue => e
|
36
|
+
Rails.logger.error("SessionDispatch::RedisSession - Unable to set redis session.")
|
37
|
+
return false
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def destroy_session(env, session_id, options)
|
42
|
+
@redis.del(prefixed_key(session_id))
|
43
|
+
return generate_sid()
|
44
|
+
end
|
45
|
+
|
46
|
+
def determine_serializer(serializer)
|
47
|
+
if serializer == :json
|
48
|
+
serial = JsonSerializer
|
49
|
+
else
|
50
|
+
serial = Marshal
|
51
|
+
end
|
52
|
+
return serial
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def prefixed_key(sid)
|
58
|
+
return "#{@prefix}#{sid}"
|
59
|
+
end
|
60
|
+
|
61
|
+
def get_redis_session(key)
|
62
|
+
begin
|
63
|
+
data = @redis.get(key)
|
64
|
+
data ? @serializer.load(data) : nil
|
65
|
+
rescue => e
|
66
|
+
Rails.logger.error("SessionDispatch::RedisSession - Unable to retrieve redis session.")
|
67
|
+
return nil
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
class JsonSerializer
|
72
|
+
def self.load(value)
|
73
|
+
return JSON.parse(value, quirks_mode: true)
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.dump(value)
|
77
|
+
return JSON.generate(value, quirks_mode: true)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -1,23 +1,22 @@
|
|
1
|
-
require File.expand_path('../boot', __FILE__)
|
2
|
-
|
3
|
-
require 'rails/all'
|
4
|
-
|
5
|
-
Bundler.require(*Rails.groups)
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
#
|
11
|
-
#
|
12
|
-
|
13
|
-
|
14
|
-
#
|
15
|
-
#
|
16
|
-
|
17
|
-
|
18
|
-
#
|
19
|
-
# config.i18n.
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
1
|
+
require File.expand_path('../boot', __FILE__)
|
2
|
+
|
3
|
+
require 'rails/all'
|
4
|
+
|
5
|
+
Bundler.require(*Rails.groups)
|
6
|
+
|
7
|
+
module Dummy
|
8
|
+
class Application < Rails::Application
|
9
|
+
# Settings in config/environments/* take precedence over those specified here.
|
10
|
+
# Application configuration should go into files in config/initializers
|
11
|
+
# -- all .rb files in that directory are automatically loaded.
|
12
|
+
|
13
|
+
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
14
|
+
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
15
|
+
# config.time_zone = 'Central Time (US & Canada)'
|
16
|
+
|
17
|
+
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
18
|
+
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
19
|
+
# config.i18n.default_locale = :de
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
@@ -1,3 +1,3 @@
|
|
1
|
-
# Be sure to restart your server when you modify this file.
|
2
|
-
|
3
|
-
Rails.application.config.session_store :
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
Rails.application.config.session_store :redis_session_storage, {:key => 'dummy_session_', :expire_after => 5.minutes}
|
@@ -28,3 +28,57 @@ Started GET "/assets/users.js?body=1" for 192.168.0.27 at 2014-09-26 18:20:33 -0
|
|
28
28
|
|
29
29
|
|
30
30
|
Started GET "/assets/application.js?body=1" for 192.168.0.27 at 2014-09-26 18:20:33 -0400
|
31
|
+
|
32
|
+
|
33
|
+
Started GET "/users" for 192.168.0.27 at 2014-09-26 19:36:28 -0400
|
34
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
35
|
+
Processing by UsersController#index as HTML
|
36
|
+
[1m[35mUser Load (0.1ms)[0m SELECT "users".* FROM "users"
|
37
|
+
Rendered users/index.html.erb within layouts/application (1.7ms)
|
38
|
+
Completed 200 OK in 21ms (Views: 19.4ms | ActiveRecord: 0.1ms)
|
39
|
+
|
40
|
+
|
41
|
+
Started GET "/assets/scaffold.css?body=1" for 192.168.0.27 at 2014-09-26 19:36:29 -0400
|
42
|
+
|
43
|
+
|
44
|
+
Started GET "/assets/users.css?body=1" for 192.168.0.27 at 2014-09-26 19:36:29 -0400
|
45
|
+
|
46
|
+
|
47
|
+
Started GET "/assets/users.js?body=1" for 192.168.0.27 at 2014-09-26 19:36:29 -0400
|
48
|
+
|
49
|
+
|
50
|
+
Started GET "/assets/application.css?body=1" for 192.168.0.27 at 2014-09-26 19:36:29 -0400
|
51
|
+
|
52
|
+
|
53
|
+
Started GET "/assets/application.js?body=1" for 192.168.0.27 at 2014-09-26 19:36:29 -0400
|
54
|
+
|
55
|
+
|
56
|
+
Started GET "/assets/scaffold.css?body=1" for 192.168.0.27 at 2014-09-26 19:36:30 -0400
|
57
|
+
|
58
|
+
|
59
|
+
Started GET "/assets/users.css?body=1" for 192.168.0.27 at 2014-09-26 19:36:30 -0400
|
60
|
+
|
61
|
+
|
62
|
+
Started GET "/assets/application.css?body=1" for 192.168.0.27 at 2014-09-26 19:36:30 -0400
|
63
|
+
|
64
|
+
|
65
|
+
Started GET "/users" for 192.168.0.27 at 2014-09-26 19:36:35 -0400
|
66
|
+
Processing by UsersController#index as HTML
|
67
|
+
[1m[36mUser Load (0.1ms)[0m [1mSELECT "users".* FROM "users"[0m
|
68
|
+
Rendered users/index.html.erb within layouts/application (0.6ms)
|
69
|
+
Completed 200 OK in 4ms (Views: 3.6ms | ActiveRecord: 0.1ms)
|
70
|
+
|
71
|
+
|
72
|
+
Started GET "/assets/scaffold.css?body=1" for 192.168.0.27 at 2014-09-26 19:36:36 -0400
|
73
|
+
|
74
|
+
|
75
|
+
Started GET "/assets/users.js?body=1" for 192.168.0.27 at 2014-09-26 19:36:36 -0400
|
76
|
+
|
77
|
+
|
78
|
+
Started GET "/assets/users.css?body=1" for 192.168.0.27 at 2014-09-26 19:36:36 -0400
|
79
|
+
|
80
|
+
|
81
|
+
Started GET "/assets/application.css?body=1" for 192.168.0.27 at 2014-09-26 19:36:36 -0400
|
82
|
+
|
83
|
+
|
84
|
+
Started GET "/assets/application.js?body=1" for 192.168.0.27 at 2014-09-26 19:36:36 -0400
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redis_session_storage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Weston
|
@@ -62,8 +62,8 @@ files:
|
|
62
62
|
- MIT-LICENSE
|
63
63
|
- README.rdoc
|
64
64
|
- Rakefile
|
65
|
-
- lib/
|
66
|
-
- lib/
|
65
|
+
- lib/redis_session_storage.rb
|
66
|
+
- lib/redis_session_storage/version.rb
|
67
67
|
- lib/tasks/redis_session_store_tasks.rake
|
68
68
|
- test/dummy/README.rdoc
|
69
69
|
- test/dummy/Rakefile
|