devise_cas_authenticatable 1.1.4 → 1.2.0
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.
- data/.travis.yml +3 -1
- data/CHANGELOG.md +4 -0
- data/app/controllers/devise/cas_sessions_controller.rb +7 -18
- data/devise_cas_authenticatable.gemspec +1 -1
- data/lib/devise_cas_authenticatable.rb +2 -8
- data/lib/devise_cas_authenticatable/railtie.rb +10 -0
- data/lib/devise_cas_authenticatable/single_sign_out.rb +51 -11
- data/lib/devise_cas_authenticatable/single_sign_out/rack.rb +30 -0
- data/lib/devise_cas_authenticatable/single_sign_out/strategies/rails_cache.rb +1 -1
- data/lib/devise_cas_authenticatable/strategy.rb +0 -1
- metadata +40 -40
- data/lib/devise_cas_authenticatable/single_sign_out/session_store/active_record.rb +0 -12
- data/lib/devise_cas_authenticatable/single_sign_out/session_store/redis.rb +0 -27
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Changelog for devise\_cas\_authenticatable
|
2
2
|
|
3
|
+
## Version 1.2.0 - March 6, 2013
|
4
|
+
|
5
|
+
* Rewrite of the single sign-out module to improve compatibility with newer Devise versions, other ORMs, and be less complex overall (thanks [Jeremy Haile](https://github.com/jeremyhaile) and [Endel Dreyer](https://github.com/endel)!)
|
6
|
+
|
3
7
|
## Version 1.1.4 - January 23, 2013
|
4
8
|
|
5
9
|
* Bug fix: don't modify request.protocol when generating a logout_url (thanks [Tse-Ching Ho](https://github.com/tsechingho)!)
|
@@ -1,6 +1,9 @@
|
|
1
|
-
class Devise::CasSessionsController < Devise::SessionsController
|
1
|
+
class Devise::CasSessionsController < Devise::SessionsController
|
2
|
+
include DeviseCasAuthenticatable::SingleSignOut::DestroySession
|
2
3
|
unloadable
|
3
4
|
|
5
|
+
skip_before_filter :verify_authenticity_token, :only => [:single_sign_out]
|
6
|
+
|
4
7
|
def new
|
5
8
|
unless returning_from_cas?
|
6
9
|
redirect_to(cas_login_url)
|
@@ -15,11 +18,6 @@ class Devise::CasSessionsController < Devise::SessionsController
|
|
15
18
|
end
|
16
19
|
|
17
20
|
def destroy
|
18
|
-
# Delete the ticket->session ID mapping if one exists for this session
|
19
|
-
if ticket = session['cas_last_valid_ticket']
|
20
|
-
::DeviseCasAuthenticatable::SingleSignOut::Strategies.current_strategy.delete_session_index(ticket)
|
21
|
-
end
|
22
|
-
|
23
21
|
# if :cas_create_user is false a CAS session might be open but not signed_in
|
24
22
|
# in such case we destroy the session here
|
25
23
|
if signed_in?(resource_name)
|
@@ -64,23 +62,14 @@ class Devise::CasSessionsController < Devise::SessionsController
|
|
64
62
|
end
|
65
63
|
|
66
64
|
def destroy_cas_session(session_id, session_index)
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
else
|
71
|
-
logger.debug "Data for session #{session_id} was not found. It may have already been cleared by a local CAS logout request."
|
72
|
-
end
|
73
|
-
else
|
74
|
-
logger.warn "A single sign out request was received for ticket #{session_index} but the Rails session_store is not a type supported for single-sign-out by devise_cas_authenticatable."
|
65
|
+
logger.debug "Destroying cas session #{session_id} for ticket #{session_index}"
|
66
|
+
if destroy_session_by_id(session_id)
|
67
|
+
logger.debug "Destroyed session #{session_id} corresponding to service ticket #{session_index}."
|
75
68
|
end
|
76
69
|
|
77
70
|
::DeviseCasAuthenticatable::SingleSignOut::Strategies.current_strategy.delete_session_index(session_index)
|
78
71
|
end
|
79
72
|
|
80
|
-
def session_store
|
81
|
-
@session_store ||= (Rails.respond_to?(:application) && Rails.application.config.session_store)
|
82
|
-
end
|
83
|
-
|
84
73
|
def returning_from_cas?
|
85
74
|
params[:ticket] || request.referer =~ /^#{::Devise.cas_client.cas_base_url}/ || request.referer =~ /^#{url_for :action => "service"}/
|
86
75
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{devise_cas_authenticatable}
|
5
|
-
s.version = "1.
|
5
|
+
s.version = "1.2.0"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Nat Budin", "Jeremy Haile"]
|
@@ -7,16 +7,10 @@ require 'devise_cas_authenticatable/exceptions'
|
|
7
7
|
|
8
8
|
require 'devise_cas_authenticatable/single_sign_out'
|
9
9
|
|
10
|
-
if defined?(ActiveRecord::SessionStore)
|
11
|
-
require 'devise_cas_authenticatable/single_sign_out/session_store/active_record'
|
12
|
-
end
|
13
|
-
|
14
|
-
if defined?(Redis::Store)
|
15
|
-
require 'devise_cas_authenticatable/single_sign_out/session_store/redis'
|
16
|
-
end
|
17
|
-
|
18
10
|
require 'rubycas-client'
|
19
11
|
|
12
|
+
require 'devise_cas_authenticatable/railtie' if defined?(Rails::Railtie)
|
13
|
+
|
20
14
|
# Register as a Rails engine if Rails::Engine exists
|
21
15
|
begin
|
22
16
|
Rails::Engine
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'devise_cas_authenticatable'
|
2
|
+
require 'rails'
|
3
|
+
|
4
|
+
module DeviseCasAuthenticatable
|
5
|
+
class Railtie < ::Rails::Railtie
|
6
|
+
initializer "devise_cas_authenticatable.use_rack_middleware" do |app|
|
7
|
+
app.config.middleware.use "DeviseCasAuthenticatable::SingleSignOut::StoreSessionId"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -1,22 +1,62 @@
|
|
1
1
|
module DeviseCasAuthenticatable
|
2
2
|
module SingleSignOut
|
3
|
-
module SetSession
|
4
|
-
def set_session_with_storage(env, sid, session_data, options={})
|
5
|
-
if session_data['cas_last_valid_ticket_store']
|
6
|
-
::DeviseCasAuthenticatable::SingleSignOut::Strategies.current_strategy.store_session_id_for_index(session_data['cas_last_valid_ticket'], sid)
|
7
|
-
session_data['cas_last_valid_ticket_store'] = nil
|
8
|
-
end
|
9
3
|
|
10
|
-
|
11
|
-
|
4
|
+
def self.rails3?
|
5
|
+
defined?(::Rails) && ::Rails::VERSION::MAJOR == 3
|
6
|
+
end
|
7
|
+
|
8
|
+
# Supports destroying sessions by ID for ActiveRecord and Redis session stores
|
9
|
+
module DestroySession
|
10
|
+
def session_store_class
|
11
|
+
@session_store_class ||=
|
12
|
+
begin
|
13
|
+
if ::DeviseCasAuthenticatable::SingleSignOut.rails3?
|
14
|
+
# => Rails 3
|
15
|
+
Rails.configuration.session_store
|
16
|
+
::Rails.application.config.session_store
|
17
|
+
else
|
18
|
+
# => Rails 2
|
19
|
+
ActionController::Base.session_store
|
20
|
+
end
|
21
|
+
rescue NameError => e
|
22
|
+
# for older versions of Rails (prior to 2.3)
|
23
|
+
ActionController::Base.session_options[:database_manager]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def current_session_store
|
28
|
+
app = Rails.application.app
|
29
|
+
begin
|
30
|
+
app = (app.instance_variable_get(:@backend) || app.instance_variable_get(:@app))
|
31
|
+
end until app.nil? or app.class == session_store_class
|
32
|
+
app
|
33
|
+
end
|
34
|
+
|
35
|
+
def destroy_session_by_id(sid)
|
36
|
+
logger.debug "Single Sign Out from session store: #{current_session_store.inspect}"
|
37
|
+
|
38
|
+
if session_store_class.name =~ /ActiveRecord::SessionStore/
|
39
|
+
session = session_store_class::Session.find_by_session_id(sid)
|
40
|
+
session.destroy if session
|
41
|
+
true
|
42
|
+
elsif session_store_class.name =~ /Redis/
|
43
|
+
current_session_store.instance_variable_get(:@pool).del(sid)
|
44
|
+
true
|
45
|
+
elsif session_store_class.name =~ /CacheStore/
|
46
|
+
current_session_store.destroy_session({}, sid, {})
|
47
|
+
true
|
12
48
|
else
|
13
|
-
|
14
|
-
|
49
|
+
logger.error "Cannot process logout request because this Rails application's session store is "+
|
50
|
+
" #{current_session_store.name.inspect} and is not a support session store type for Single Sign-Out."
|
51
|
+
false
|
52
|
+
end
|
15
53
|
end
|
16
54
|
end
|
55
|
+
|
17
56
|
end
|
18
57
|
end
|
19
58
|
|
20
59
|
require 'devise_cas_authenticatable/single_sign_out/strategies'
|
21
60
|
require 'devise_cas_authenticatable/single_sign_out/strategies/base'
|
22
|
-
require 'devise_cas_authenticatable/single_sign_out/strategies/rails_cache'
|
61
|
+
require 'devise_cas_authenticatable/single_sign_out/strategies/rails_cache'
|
62
|
+
require 'devise_cas_authenticatable/single_sign_out/rack'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module DeviseCasAuthenticatable
|
2
|
+
module SingleSignOut
|
3
|
+
|
4
|
+
class StoreSessionId
|
5
|
+
def initialize(app)
|
6
|
+
@app = app
|
7
|
+
end
|
8
|
+
|
9
|
+
def call(env)
|
10
|
+
store_session_id_for_cas_ticket(env)
|
11
|
+
@app.call(env)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def store_session_id_for_cas_ticket(env)
|
17
|
+
request = Rack::Request.new(env)
|
18
|
+
session = request.session
|
19
|
+
|
20
|
+
if session['cas_last_valid_ticket_store']
|
21
|
+
sid = env['rack.session.options'][:id]
|
22
|
+
Rails.logger.info "Storing sid #{sid} for ticket #{session['cas_last_valid_ticket']}"
|
23
|
+
::DeviseCasAuthenticatable::SingleSignOut::Strategies.current_strategy.store_session_id_for_index(session['cas_last_valid_ticket'], sid)
|
24
|
+
session['cas_last_valid_ticket_store'] = false
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -28,4 +28,4 @@ module DeviseCasAuthenticatable
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
-
::DeviseCasAuthenticatable::SingleSignOut::Strategies.add( :rails_cache, DeviseCasAuthenticatable::SingleSignOut::Strategies::RailsCache )
|
31
|
+
::DeviseCasAuthenticatable::SingleSignOut::Strategies.add( :rails_cache, DeviseCasAuthenticatable::SingleSignOut::Strategies::RailsCache )
|
@@ -27,7 +27,6 @@ module Devise
|
|
27
27
|
elsif ticket.is_valid?
|
28
28
|
username = ticket.respond_to?(:user) ? ticket.user : ticket.response.user
|
29
29
|
redirect!(::Devise.cas_unregistered_url(request.url, mapping), :username => username)
|
30
|
-
#fail!("The user #{ticket.response.user} is not registered with this site. Please use a different account.")
|
31
30
|
else
|
32
31
|
fail!(:invalid)
|
33
32
|
end
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise_cas_authenticatable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.4
|
5
4
|
prerelease:
|
5
|
+
version: 1.2.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Nat Budin
|
@@ -10,195 +10,195 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-03-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
+
type: :runtime
|
17
|
+
version_requirements: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.0.6
|
16
23
|
name: devise
|
24
|
+
prerelease: false
|
17
25
|
requirement: !ruby/object:Gem::Requirement
|
18
26
|
none: false
|
19
27
|
requirements:
|
20
28
|
- - ! '>='
|
21
29
|
- !ruby/object:Gem::Version
|
22
30
|
version: 1.0.6
|
31
|
+
- !ruby/object:Gem::Dependency
|
23
32
|
type: :runtime
|
24
|
-
prerelease: false
|
25
33
|
version_requirements: !ruby/object:Gem::Requirement
|
26
34
|
none: false
|
27
35
|
requirements:
|
28
36
|
- - ! '>='
|
29
37
|
- !ruby/object:Gem::Version
|
30
|
-
version:
|
31
|
-
- !ruby/object:Gem::Dependency
|
38
|
+
version: 2.2.1
|
32
39
|
name: rubycas-client
|
40
|
+
prerelease: false
|
33
41
|
requirement: !ruby/object:Gem::Requirement
|
34
42
|
none: false
|
35
43
|
requirements:
|
36
44
|
- - ! '>='
|
37
45
|
- !ruby/object:Gem::Version
|
38
46
|
version: 2.2.1
|
39
|
-
|
40
|
-
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
type: :development
|
41
49
|
version_requirements: !ruby/object:Gem::Requirement
|
42
50
|
none: false
|
43
51
|
requirements:
|
44
52
|
- - ! '>='
|
45
53
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
47
|
-
- !ruby/object:Gem::Dependency
|
54
|
+
version: 3.0.7
|
48
55
|
name: rails
|
56
|
+
prerelease: false
|
49
57
|
requirement: !ruby/object:Gem::Requirement
|
50
58
|
none: false
|
51
59
|
requirements:
|
52
60
|
- - ! '>='
|
53
61
|
- !ruby/object:Gem::Version
|
54
62
|
version: 3.0.7
|
63
|
+
- !ruby/object:Gem::Dependency
|
55
64
|
type: :development
|
56
|
-
prerelease: false
|
57
65
|
version_requirements: !ruby/object:Gem::Requirement
|
58
66
|
none: false
|
59
67
|
requirements:
|
60
68
|
- - ! '>='
|
61
69
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
63
|
-
- !ruby/object:Gem::Dependency
|
70
|
+
version: '0'
|
64
71
|
name: rspec-rails
|
72
|
+
prerelease: false
|
65
73
|
requirement: !ruby/object:Gem::Requirement
|
66
74
|
none: false
|
67
75
|
requirements:
|
68
76
|
- - ! '>='
|
69
77
|
- !ruby/object:Gem::Version
|
70
78
|
version: '0'
|
79
|
+
- !ruby/object:Gem::Dependency
|
71
80
|
type: :development
|
72
|
-
prerelease: false
|
73
81
|
version_requirements: !ruby/object:Gem::Requirement
|
74
82
|
none: false
|
75
83
|
requirements:
|
76
84
|
- - ! '>='
|
77
85
|
- !ruby/object:Gem::Version
|
78
86
|
version: '0'
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
87
|
name: mocha
|
88
|
+
prerelease: false
|
81
89
|
requirement: !ruby/object:Gem::Requirement
|
82
90
|
none: false
|
83
91
|
requirements:
|
84
92
|
- - ! '>='
|
85
93
|
- !ruby/object:Gem::Version
|
86
94
|
version: '0'
|
95
|
+
- !ruby/object:Gem::Dependency
|
87
96
|
type: :development
|
88
|
-
prerelease: false
|
89
97
|
version_requirements: !ruby/object:Gem::Requirement
|
90
98
|
none: false
|
91
99
|
requirements:
|
92
100
|
- - ! '>='
|
93
101
|
- !ruby/object:Gem::Version
|
94
102
|
version: '0'
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
103
|
name: shoulda
|
104
|
+
prerelease: false
|
97
105
|
requirement: !ruby/object:Gem::Requirement
|
98
106
|
none: false
|
99
107
|
requirements:
|
100
108
|
- - ! '>='
|
101
109
|
- !ruby/object:Gem::Version
|
102
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
103
112
|
type: :development
|
104
|
-
prerelease: false
|
105
113
|
version_requirements: !ruby/object:Gem::Requirement
|
106
114
|
none: false
|
107
115
|
requirements:
|
108
116
|
- - ! '>='
|
109
117
|
- !ruby/object:Gem::Version
|
110
118
|
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
119
|
name: sqlite3-ruby
|
120
|
+
prerelease: false
|
113
121
|
requirement: !ruby/object:Gem::Requirement
|
114
122
|
none: false
|
115
123
|
requirements:
|
116
124
|
- - ! '>='
|
117
125
|
- !ruby/object:Gem::Version
|
118
126
|
version: '0'
|
127
|
+
- !ruby/object:Gem::Dependency
|
119
128
|
type: :development
|
120
|
-
prerelease: false
|
121
129
|
version_requirements: !ruby/object:Gem::Requirement
|
122
130
|
none: false
|
123
131
|
requirements:
|
124
132
|
- - ! '>='
|
125
133
|
- !ruby/object:Gem::Version
|
126
134
|
version: '0'
|
127
|
-
- !ruby/object:Gem::Dependency
|
128
135
|
name: sham_rack
|
136
|
+
prerelease: false
|
129
137
|
requirement: !ruby/object:Gem::Requirement
|
130
138
|
none: false
|
131
139
|
requirements:
|
132
140
|
- - ! '>='
|
133
141
|
- !ruby/object:Gem::Version
|
134
142
|
version: '0'
|
143
|
+
- !ruby/object:Gem::Dependency
|
135
144
|
type: :development
|
136
|
-
prerelease: false
|
137
145
|
version_requirements: !ruby/object:Gem::Requirement
|
138
146
|
none: false
|
139
147
|
requirements:
|
140
148
|
- - ! '>='
|
141
149
|
- !ruby/object:Gem::Version
|
142
150
|
version: '0'
|
143
|
-
- !ruby/object:Gem::Dependency
|
144
151
|
name: capybara
|
152
|
+
prerelease: false
|
145
153
|
requirement: !ruby/object:Gem::Requirement
|
146
154
|
none: false
|
147
155
|
requirements:
|
148
156
|
- - ! '>='
|
149
157
|
- !ruby/object:Gem::Version
|
150
158
|
version: '0'
|
159
|
+
- !ruby/object:Gem::Dependency
|
151
160
|
type: :development
|
152
|
-
prerelease: false
|
153
161
|
version_requirements: !ruby/object:Gem::Requirement
|
154
162
|
none: false
|
155
163
|
requirements:
|
156
164
|
- - ! '>='
|
157
165
|
- !ruby/object:Gem::Version
|
158
166
|
version: '0'
|
159
|
-
- !ruby/object:Gem::Dependency
|
160
167
|
name: crypt-isaac
|
168
|
+
prerelease: false
|
161
169
|
requirement: !ruby/object:Gem::Requirement
|
162
170
|
none: false
|
163
171
|
requirements:
|
164
172
|
- - ! '>='
|
165
173
|
- !ruby/object:Gem::Version
|
166
174
|
version: '0'
|
175
|
+
- !ruby/object:Gem::Dependency
|
167
176
|
type: :development
|
168
|
-
prerelease: false
|
169
177
|
version_requirements: !ruby/object:Gem::Requirement
|
170
178
|
none: false
|
171
179
|
requirements:
|
172
180
|
- - ! '>='
|
173
181
|
- !ruby/object:Gem::Version
|
174
182
|
version: '0'
|
175
|
-
- !ruby/object:Gem::Dependency
|
176
183
|
name: launchy
|
184
|
+
prerelease: false
|
177
185
|
requirement: !ruby/object:Gem::Requirement
|
178
186
|
none: false
|
179
187
|
requirements:
|
180
188
|
- - ! '>='
|
181
189
|
- !ruby/object:Gem::Version
|
182
190
|
version: '0'
|
191
|
+
- !ruby/object:Gem::Dependency
|
183
192
|
type: :development
|
184
|
-
prerelease: false
|
185
193
|
version_requirements: !ruby/object:Gem::Requirement
|
186
194
|
none: false
|
187
195
|
requirements:
|
188
196
|
- - ! '>='
|
189
197
|
- !ruby/object:Gem::Version
|
190
198
|
version: '0'
|
191
|
-
- !ruby/object:Gem::Dependency
|
192
199
|
name: pry
|
193
|
-
requirement: !ruby/object:Gem::Requirement
|
194
|
-
none: false
|
195
|
-
requirements:
|
196
|
-
- - ! '>='
|
197
|
-
- !ruby/object:Gem::Version
|
198
|
-
version: '0'
|
199
|
-
type: :development
|
200
200
|
prerelease: false
|
201
|
-
|
201
|
+
requirement: !ruby/object:Gem::Requirement
|
202
202
|
none: false
|
203
203
|
requirements:
|
204
204
|
- - ! '>='
|
@@ -234,11 +234,11 @@ files:
|
|
234
234
|
- lib/devise_cas_authenticatable.rb
|
235
235
|
- lib/devise_cas_authenticatable/exceptions.rb
|
236
236
|
- lib/devise_cas_authenticatable/model.rb
|
237
|
+
- lib/devise_cas_authenticatable/railtie.rb
|
237
238
|
- lib/devise_cas_authenticatable/routes.rb
|
238
239
|
- lib/devise_cas_authenticatable/schema.rb
|
239
240
|
- lib/devise_cas_authenticatable/single_sign_out.rb
|
240
|
-
- lib/devise_cas_authenticatable/single_sign_out/
|
241
|
-
- lib/devise_cas_authenticatable/single_sign_out/session_store/redis.rb
|
241
|
+
- lib/devise_cas_authenticatable/single_sign_out/rack.rb
|
242
242
|
- lib/devise_cas_authenticatable/single_sign_out/strategies.rb
|
243
243
|
- lib/devise_cas_authenticatable/single_sign_out/strategies/base.rb
|
244
244
|
- lib/devise_cas_authenticatable/single_sign_out/strategies/rails_cache.rb
|
@@ -290,10 +290,10 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
290
290
|
requirements:
|
291
291
|
- - ! '>='
|
292
292
|
- !ruby/object:Gem::Version
|
293
|
-
version: '0'
|
294
293
|
segments:
|
295
294
|
- 0
|
296
|
-
hash: -
|
295
|
+
hash: -2741106234440343687
|
296
|
+
version: '0'
|
297
297
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
298
298
|
none: false
|
299
299
|
requirements:
|
@@ -1,12 +0,0 @@
|
|
1
|
-
ActiveRecord::SessionStore.class_eval do
|
2
|
-
|
3
|
-
include DeviseCasAuthenticatable::SingleSignOut::SetSession
|
4
|
-
alias_method_chain :set_session, :storage
|
5
|
-
|
6
|
-
#def destroy_session(env, session_id, options)
|
7
|
-
# if session = Session::find_by_session_id(sid)
|
8
|
-
# session.destroy
|
9
|
-
# end
|
10
|
-
#end
|
11
|
-
|
12
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require "action_controller/session/redis_session_store"
|
2
|
-
|
3
|
-
module DeviseCasAuthenticatable
|
4
|
-
module SingleSignOut
|
5
|
-
module RedisSessionStore
|
6
|
-
|
7
|
-
include DeviseCasAuthenticatable::SingleSignOut::SetSession
|
8
|
-
|
9
|
-
def destroy_session(sid)
|
10
|
-
@pool.del(sid)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
|
17
|
-
if ::Redis::Store.rails3?
|
18
|
-
ActionDispatch::Session::RedisSessionStore.class_eval do
|
19
|
-
include DeviseCasAuthenticatable::SingleSignOut::RedisSessionStore
|
20
|
-
alias_method_chain :set_session, :storage
|
21
|
-
end
|
22
|
-
else
|
23
|
-
ActionController::Session::RedisSessionStore.class_eval do
|
24
|
-
include DeviseCasAuthenticatable::SingleSignOut::RedisSessionStore
|
25
|
-
alias_method_chain :set_session, :storage
|
26
|
-
end
|
27
|
-
end
|