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 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
@@ -14,7 +14,7 @@ GIT
14
14
  PATH
15
15
  remote: .
16
16
  specs:
17
- devise_cas_authenticatable (1.1.0)
17
+ devise_cas_authenticatable (1.1.1)
18
18
  devise (>= 1.0.6)
19
19
  rubycas-client (>= 2.2.1)
20
20
 
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.cas_authenticatable
48
+ t.string :username, :null => false
49
49
  end
50
50
 
51
- and, optionally, indexes:
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.0"
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 ||= CASClient::Client.new(
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)
@@ -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.0
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-03-05 00:00:00.000000000 Z
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: &70212720533560 !ruby/object:Gem::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: *70212720533560
25
+ version_requirements: *70115849206480
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rubycas-client
28
- requirement: &70212720532860 !ruby/object:Gem::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: *70212720532860
36
+ version_requirements: *70115849206000
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rails
39
- requirement: &70212720532160 !ruby/object:Gem::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: *70212720532160
47
+ version_requirements: *70115849205520
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rspec-rails
50
- requirement: &70212720542700 !ruby/object:Gem::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: *70212720542700
58
+ version_requirements: *70115849204900
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: mocha
61
- requirement: &70212720562620 !ruby/object:Gem::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: *70212720562620
69
+ version_requirements: *70115849204480
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: shoulda
72
- requirement: &70212720561540 !ruby/object:Gem::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: *70212720561540
80
+ version_requirements: *70115849432020
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: sqlite3-ruby
83
- requirement: &70212720560820 !ruby/object:Gem::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: *70212720560820
91
+ version_requirements: *70115849431580
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: sham_rack
94
- requirement: &70212720559860 !ruby/object:Gem::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: *70212720559860
102
+ version_requirements: *70115849431160
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: capybara
105
- requirement: &70212720559040 !ruby/object:Gem::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: *70212720559040
113
+ version_requirements: *70115849430740
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: crypt-isaac
116
- requirement: &70212720557960 !ruby/object:Gem::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: *70212720557960
124
+ version_requirements: *70115849430320
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: launchy
127
- requirement: &70212720557100 !ruby/object:Gem::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: *70212720557100
135
+ version_requirements: *70115849429860
136
136
  - !ruby/object:Gem::Dependency
137
137
  name: pry
138
- requirement: &70212720576340 !ruby/object:Gem::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: *70212720576340
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: -4204177157087710120
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