devise_cas_authenticatable 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +5 -1
- data/Gemfile.lock +1 -1
- data/README.md +7 -2
- data/devise_cas_authenticatable.gemspec +1 -1
- data/lib/devise_cas_authenticatable.rb +12 -3
- data/spec/config_spec.rb +27 -0
- metadata +29 -27
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
# Changelog for devise\_cas\_authenticatable
|
2
2
|
|
3
|
+
## Version 1.1.1 - April 2, 2012
|
4
|
+
|
5
|
+
* Add cas_client_config_options so that users can add unsupported RubyCAS options such as encode_extra_attributes_as
|
6
|
+
|
3
7
|
## Version 1.1.0 - March 5, 2012
|
4
8
|
|
5
9
|
* Add configurable destination and follow URL support (thanks [Dyson Simmons](https://github.com/dyson)!)
|
6
10
|
* Allow applications deployed at sub-URIs to work (thanks [Tod Detre](https://github.com/tod)!)
|
7
11
|
* Only add trailing slash to base URI if it's not already present (thanks [joe81](https://github.com/joe81)!)
|
8
|
-
* Some documentation updates.
|
12
|
+
* Some documentation updates.
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -45,13 +45,18 @@ add database_authenticatable as this module is intended to replace it.
|
|
45
45
|
You'll also need to set up the database schema for this:
|
46
46
|
|
47
47
|
create_table :users do |t|
|
48
|
-
t.
|
48
|
+
t.string :username, :null => false
|
49
49
|
end
|
50
50
|
|
51
|
-
|
51
|
+
We also recommend putting a unique index on the `username` column:
|
52
52
|
|
53
53
|
add_index :users, :username, :unique => true
|
54
54
|
|
55
|
+
(Note: previously, devise\_cas\_authenticatable recommended using a `t.cas_authenticatable` method call to update the
|
56
|
+
schema. Devise 2.0 has deprecated this type of schema building method, so we now recommend just adding the `username`
|
57
|
+
string column as above. As of this writing, `t.cas_authenticatable` still works, but throws a deprecation warning in
|
58
|
+
Devise 2.0.)
|
59
|
+
|
55
60
|
Finally, you'll need to add some configuration to your config/initializers/devise.rb in order
|
56
61
|
to tell your app how to talk to your CAS server:
|
57
62
|
|
@@ -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.1.
|
5
|
+
s.version = "1.1.1"
|
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"]
|
@@ -70,8 +70,11 @@ module Devise
|
|
70
70
|
|
71
71
|
# Name of the parameter passed in the logout query
|
72
72
|
@@cas_destination_logout_param_name = nil
|
73
|
+
|
74
|
+
# Additional options for CAS client object
|
75
|
+
@@cas_client_config_options = {}
|
73
76
|
|
74
|
-
mattr_accessor :cas_base_url, :cas_login_url, :cas_logout_url, :cas_validate_url, :cas_destination_url, :cas_follow_url, :cas_logout_url_param, :cas_create_user, :cas_destination_logout_param_name, :cas_username_column, :cas_enable_single_sign_out, :cas_single_sign_out_mapping_strategy
|
77
|
+
mattr_accessor :cas_base_url, :cas_login_url, :cas_logout_url, :cas_validate_url, :cas_destination_url, :cas_follow_url, :cas_logout_url_param, :cas_create_user, :cas_destination_logout_param_name, :cas_username_column, :cas_enable_single_sign_out, :cas_single_sign_out_mapping_strategy, :cas_client_config_options
|
75
78
|
|
76
79
|
def self.cas_create_user?
|
77
80
|
cas_create_user
|
@@ -79,14 +82,20 @@ module Devise
|
|
79
82
|
|
80
83
|
# Return a CASClient::Client instance based on configuration parameters.
|
81
84
|
def self.cas_client
|
82
|
-
@@cas_client ||=
|
85
|
+
@@cas_client ||= begin
|
86
|
+
cas_options = {
|
83
87
|
:cas_destination_logout_param_name => @@cas_destination_logout_param_name,
|
84
88
|
:cas_base_url => @@cas_base_url,
|
85
89
|
:login_url => @@cas_login_url,
|
86
90
|
:logout_url => @@cas_logout_url,
|
87
91
|
:validate_url => @@cas_validate_url,
|
88
92
|
:enable_single_sign_out => @@cas_enable_single_sign_out
|
89
|
-
|
93
|
+
}
|
94
|
+
|
95
|
+
cas_options.merge!(@@cas_client_config_options) if @@cas_client_config_options
|
96
|
+
|
97
|
+
CASClient::Client.new(cas_options)
|
98
|
+
end
|
90
99
|
end
|
91
100
|
|
92
101
|
def self.cas_service_url(base_url, mapping)
|
data/spec/config_spec.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Devise
|
4
|
+
def self.reset_cas_client!
|
5
|
+
@@cas_client = nil
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
describe Devise do
|
10
|
+
before do
|
11
|
+
Devise.cas_base_url = "http://www.example.com/cas_server"
|
12
|
+
end
|
13
|
+
|
14
|
+
after { Devise.reset_cas_client! }
|
15
|
+
|
16
|
+
it "should figure out the base URL correctly" do
|
17
|
+
Devise.cas_client.cas_base_url.should == "http://www.example.com/cas_server"
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should accept extra options for the CAS client object' do
|
21
|
+
Devise.cas_client_config_options = { :encode_extra_attributes_as => :json }
|
22
|
+
|
23
|
+
conf_options = Devise.cas_client.instance_variable_get(:@conf_options)
|
24
|
+
conf_options.should_not be_nil
|
25
|
+
conf_options[:encode_extra_attributes_as].should == :json
|
26
|
+
end
|
27
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise_cas_authenticatable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-04-02 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: devise
|
17
|
-
requirement: &
|
17
|
+
requirement: &70115849206480 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 1.0.6
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70115849206480
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rubycas-client
|
28
|
-
requirement: &
|
28
|
+
requirement: &70115849206000 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 2.2.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70115849206000
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: rails
|
39
|
-
requirement: &
|
39
|
+
requirement: &70115849205520 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 3.0.7
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70115849205520
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rspec-rails
|
50
|
-
requirement: &
|
50
|
+
requirement: &70115849204900 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 2.6.1
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70115849204900
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: mocha
|
61
|
-
requirement: &
|
61
|
+
requirement: &70115849204480 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70115849204480
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: shoulda
|
72
|
-
requirement: &
|
72
|
+
requirement: &70115849432020 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *70115849432020
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: sqlite3-ruby
|
83
|
-
requirement: &
|
83
|
+
requirement: &70115849431580 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *70115849431580
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: sham_rack
|
94
|
-
requirement: &
|
94
|
+
requirement: &70115849431160 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ! '>='
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: '0'
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *70115849431160
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: capybara
|
105
|
-
requirement: &
|
105
|
+
requirement: &70115849430740 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ! '>='
|
@@ -110,10 +110,10 @@ dependencies:
|
|
110
110
|
version: '0'
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *70115849430740
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: crypt-isaac
|
116
|
-
requirement: &
|
116
|
+
requirement: &70115849430320 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ! '>='
|
@@ -121,10 +121,10 @@ dependencies:
|
|
121
121
|
version: '0'
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *70115849430320
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: launchy
|
127
|
-
requirement: &
|
127
|
+
requirement: &70115849429860 !ruby/object:Gem::Requirement
|
128
128
|
none: false
|
129
129
|
requirements:
|
130
130
|
- - ! '>='
|
@@ -132,10 +132,10 @@ dependencies:
|
|
132
132
|
version: '0'
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
|
-
version_requirements: *
|
135
|
+
version_requirements: *70115849429860
|
136
136
|
- !ruby/object:Gem::Dependency
|
137
137
|
name: pry
|
138
|
-
requirement: &
|
138
|
+
requirement: &70115849429440 !ruby/object:Gem::Requirement
|
139
139
|
none: false
|
140
140
|
requirements:
|
141
141
|
- - ! '>='
|
@@ -143,7 +143,7 @@ dependencies:
|
|
143
143
|
version: '0'
|
144
144
|
type: :development
|
145
145
|
prerelease: false
|
146
|
-
version_requirements: *
|
146
|
+
version_requirements: *70115849429440
|
147
147
|
description: CAS authentication module for Devise
|
148
148
|
email: natbudin@gmail.com
|
149
149
|
executables: []
|
@@ -176,6 +176,7 @@ files:
|
|
176
176
|
- lib/devise_cas_authenticatable/single_sign_out/strategies/rails_cache.rb
|
177
177
|
- lib/devise_cas_authenticatable/strategy.rb
|
178
178
|
- rails/init.rb
|
179
|
+
- spec/config_spec.rb
|
179
180
|
- spec/routes_spec.rb
|
180
181
|
- spec/scenario/.gitignore
|
181
182
|
- spec/scenario/app/controllers/application_controller.rb
|
@@ -222,7 +223,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
222
223
|
version: '0'
|
223
224
|
segments:
|
224
225
|
- 0
|
225
|
-
hash:
|
226
|
+
hash: 3652027784105001669
|
226
227
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
227
228
|
none: false
|
228
229
|
requirements:
|
@@ -236,6 +237,7 @@ signing_key:
|
|
236
237
|
specification_version: 3
|
237
238
|
summary: CAS authentication module for Devise
|
238
239
|
test_files:
|
240
|
+
- spec/config_spec.rb
|
239
241
|
- spec/routes_spec.rb
|
240
242
|
- spec/scenario/.gitignore
|
241
243
|
- spec/scenario/app/controllers/application_controller.rb
|