ror-rubycas-server 1.0.a

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.
Files changed (79) hide show
  1. data/CHANGELOG +292 -0
  2. data/Gemfile +2 -0
  3. data/LICENSE +26 -0
  4. data/README.textile +129 -0
  5. data/Rakefile +1 -0
  6. data/bin/rubycas-server +16 -0
  7. data/lib/casserver.rb +11 -0
  8. data/lib/casserver/authenticators/active_directory_ldap.rb +19 -0
  9. data/lib/casserver/authenticators/authlogic_crypto_providers/aes256.rb +43 -0
  10. data/lib/casserver/authenticators/authlogic_crypto_providers/bcrypt.rb +92 -0
  11. data/lib/casserver/authenticators/authlogic_crypto_providers/md5.rb +34 -0
  12. data/lib/casserver/authenticators/authlogic_crypto_providers/sha1.rb +59 -0
  13. data/lib/casserver/authenticators/authlogic_crypto_providers/sha512.rb +50 -0
  14. data/lib/casserver/authenticators/base.rb +67 -0
  15. data/lib/casserver/authenticators/client_certificate.rb +47 -0
  16. data/lib/casserver/authenticators/google.rb +58 -0
  17. data/lib/casserver/authenticators/ldap.rb +147 -0
  18. data/lib/casserver/authenticators/ntlm.rb +88 -0
  19. data/lib/casserver/authenticators/open_id.rb +22 -0
  20. data/lib/casserver/authenticators/sql.rb +133 -0
  21. data/lib/casserver/authenticators/sql_authlogic.rb +93 -0
  22. data/lib/casserver/authenticators/sql_encrypted.rb +75 -0
  23. data/lib/casserver/authenticators/sql_md5.rb +19 -0
  24. data/lib/casserver/authenticators/sql_rest_auth.rb +85 -0
  25. data/lib/casserver/authenticators/test.rb +22 -0
  26. data/lib/casserver/cas.rb +315 -0
  27. data/lib/casserver/localization.rb +91 -0
  28. data/lib/casserver/model.rb +270 -0
  29. data/lib/casserver/options_hash.rb +44 -0
  30. data/lib/casserver/server.rb +706 -0
  31. data/lib/casserver/utils.rb +32 -0
  32. data/lib/casserver/views/_login_form.erb +42 -0
  33. data/lib/casserver/views/layout.erb +18 -0
  34. data/lib/casserver/views/login.erb +30 -0
  35. data/lib/casserver/views/proxy.builder +12 -0
  36. data/lib/casserver/views/proxy_validate.builder +25 -0
  37. data/lib/casserver/views/service_validate.builder +18 -0
  38. data/lib/casserver/views/validate.erb +2 -0
  39. data/po/de_DE/rubycas-server.po +127 -0
  40. data/po/es_ES/rubycas-server.po +123 -0
  41. data/po/fr_FR/rubycas-server.po +128 -0
  42. data/po/ja_JP/rubycas-server.po +126 -0
  43. data/po/pl_PL/rubycas-server.po +123 -0
  44. data/po/pt_BR/rubycas-server.po +123 -0
  45. data/po/ru_RU/rubycas-server.po +118 -0
  46. data/po/rubycas-server.pot +112 -0
  47. data/po/zh_CN/rubycas-server.po +113 -0
  48. data/po/zh_TW/rubycas-server.po +113 -0
  49. data/public/themes/cas.css +121 -0
  50. data/public/themes/notice.png +0 -0
  51. data/public/themes/ok.png +0 -0
  52. data/public/themes/simple/bg.png +0 -0
  53. data/public/themes/simple/favicon.png +0 -0
  54. data/public/themes/simple/login_box_bg.png +0 -0
  55. data/public/themes/simple/logo.png +0 -0
  56. data/public/themes/simple/theme.css +28 -0
  57. data/public/themes/urbacon/bg.png +0 -0
  58. data/public/themes/urbacon/login_box_bg.png +0 -0
  59. data/public/themes/urbacon/logo.png +0 -0
  60. data/public/themes/urbacon/theme.css +33 -0
  61. data/public/themes/warning.png +0 -0
  62. data/resources/init.d.sh +58 -0
  63. data/rubycas-server.gemspec +57 -0
  64. data/setup.rb +1585 -0
  65. data/spec/alt_config.yml +50 -0
  66. data/spec/authenticators/ldap_spec.rb +53 -0
  67. data/spec/casserver_spec.rb +141 -0
  68. data/spec/database.yml +5 -0
  69. data/spec/default_config.yml +73 -0
  70. data/spec/model_spec.rb +42 -0
  71. data/spec/options_hash_spec.rb +146 -0
  72. data/spec/spec.opts +4 -0
  73. data/spec/spec_helper.rb +90 -0
  74. data/spec/utils_spec.rb +53 -0
  75. data/tasks/bundler.rake +4 -0
  76. data/tasks/db/migrate.rake +12 -0
  77. data/tasks/localization.rake +13 -0
  78. data/tasks/spec.rake +10 -0
  79. metadata +356 -0
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format nested
3
+ --loadby mtime
4
+ --reverse
@@ -0,0 +1,90 @@
1
+ require 'rubygems'
2
+ require 'sinatra'
3
+ require 'rack/test'
4
+ require 'rspec'
5
+ #require 'spec/autorun'
6
+ #require 'spec/interop/test'
7
+ require 'logger'
8
+ require 'ostruct'
9
+
10
+ require 'capybara'
11
+ require 'capybara/dsl'
12
+ require "active_record"
13
+ require "active_record/base"
14
+
15
+ # set test environment
16
+ set :environment, :test
17
+ set :run, false
18
+ set :raise_errors, true
19
+ set :logging, false
20
+
21
+
22
+ if Dir.getwd =~ /\/spec$/
23
+ # Avoid potential weirdness by changing the working directory to the CASServer root
24
+ FileUtils.cd('..')
25
+ end
26
+
27
+ def silence_warnings
28
+ old_verbose, $VERBOSE = $VERBOSE, nil
29
+ yield
30
+ ensure
31
+ $VERBOSE = old_verbose
32
+ end
33
+
34
+ # Ugly monkeypatch to allow us to test for correct redirection to
35
+ # external services.
36
+ #
37
+ # This will likely break in the future when Capybara or RackTest are upgraded.
38
+ class Capybara::Driver::RackTest
39
+ alias_method :original_follow_redirects!, :follow_redirects!
40
+ alias_method :original_current_url, :current_url
41
+
42
+ def current_url
43
+ if @redirected_to_external_url
44
+ @redirected_to_external_url
45
+ else
46
+ original_current_url
47
+ end
48
+ end
49
+
50
+ def follow_redirects!
51
+ if response['Location'] =~ /^http:/
52
+ @redirected_to_external_url = response['Location']
53
+ else
54
+ original_follow_redirects!
55
+ end
56
+ end
57
+ end
58
+
59
+ # This called in specs' `before` block.
60
+ # Due to the way Sinatra applications are loaded,
61
+ # we're forced to delay loading of the server code
62
+ # until the start of each test so that certain
63
+ # configuraiton options can be changed (e.g. `uri_path`)
64
+ def load_server(config_file)
65
+ ENV['CONFIG_FILE'] = config_file
66
+
67
+ silence_warnings do
68
+ load File.dirname(__FILE__) + '/../lib/casserver/server.rb'
69
+ end
70
+
71
+ CASServer::Server.enable(:raise_errors)
72
+ CASServer::Server.disable(:show_exceptions)
73
+
74
+ #Capybara.current_driver = :selenium
75
+ Capybara.app = CASServer::Server
76
+ end
77
+
78
+ # Deletes the sqlite3 database specified in the app's config
79
+ # and runs the db:migrate rake tasks to rebuild the database schema.
80
+ def reset_spec_database
81
+ raise "Cannot reset the spec database because config[:database][:database] is not defined." unless
82
+ CASServer::Server.config[:database] && CASServer::Server.config[:database][:database]
83
+
84
+ FileUtils.rm_f(CASServer::Server.config[:database][:database])
85
+
86
+ ActiveRecord::Base.logger = Logger.new(STDOUT)
87
+ ActiveRecord::Base.logger.level = Logger::ERROR
88
+ ActiveRecord::Migration.verbose = false
89
+ ActiveRecord::Migrator.migrate("db/migrate")
90
+ end
@@ -0,0 +1,53 @@
1
+ # encoding: UTF-8
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ module CASServer
5
+ end
6
+ require 'casserver/utils'
7
+
8
+ describe CASServer::Utils, '#random_string(max_length = 29)' do
9
+ before do
10
+ load_server(File.dirname(__FILE__) + "/default_config.yml")
11
+ reset_spec_database
12
+ end
13
+
14
+ context 'when max length is not passed in' do
15
+ it 'should return a random string of length 29' do
16
+ subject.random_string.length.should == 29
17
+ end
18
+ end
19
+
20
+ context 'when max length is passed in' do
21
+ it 'should return a random string of the desired length' do
22
+ subject.random_string(30).length.should == 30
23
+ end
24
+ end
25
+
26
+ it 'should include the letter r in the random string' do
27
+ subject.random_string.should include 'r'
28
+ end
29
+
30
+ it 'should return a random string' do
31
+ random_string = subject.random_string
32
+ another_random_string = subject.random_string
33
+ random_string.should_not == another_random_string
34
+ end
35
+ end
36
+
37
+ describe CASServer::Utils, '#log_controller_action(controller, params)' do
38
+ let(:params) { {} }
39
+ let(:params_with_password) { { 'password' => 'test' } }
40
+ let(:params_with_password_filtered) { { 'password' => '******' } }
41
+
42
+ it 'should log the controller action' do
43
+ $LOG.should_receive(:debug).with 'Processing application::instance_eval {}'
44
+
45
+ subject.log_controller_action('application', params)
46
+ end
47
+
48
+ it 'should filter password parameters in the log' do
49
+ $LOG.should_receive(:debug).with "Processing application::instance_eval #{params_with_password_filtered.inspect}"
50
+
51
+ subject.log_controller_action('application', params_with_password)
52
+ end
53
+ end
@@ -0,0 +1,4 @@
1
+ require 'bundler'
2
+ namespace :bundler do
3
+ Bundler::GemHelper.install_tasks(:name => 'rubycas-server')
4
+ end
@@ -0,0 +1,12 @@
1
+ namespace :db do
2
+ desc "bring your CAS server database schema up to date (options CONFIG=/path/to/config.yml)"
3
+ task :migrate do |t|
4
+ $:.unshift File.dirname(__FILE__) + "/../../lib"
5
+
6
+ require 'casserver/server'
7
+
8
+ CASServer::Model::Base.logger = Logger.new(STDOUT)
9
+ ActiveRecord::Migration.verbose = true
10
+ ActiveRecord::Migrator.migrate("db/migrate")
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ namespace :localization do
2
+ desc 'Scans the code for translatable strings and generates/updates the .po files'
3
+ task :po do
4
+ require 'gettext/utils'
5
+ GetText.update_pofiles("rubycas-server", Dir.glob("{lib,bin}/**/*.{rb}"), "rubycas-server ")
6
+ end
7
+
8
+ desc 'Creates .mo files from .po files and puts them in the locale dir'
9
+ task :mo do
10
+ require 'gettext/utils'
11
+ GetText.create_mofiles(true, "po", "locale")
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ #begin
2
+ require 'rspec/core/rake_task'
3
+ desc 'Run RSpecs to confirm that all functionality is working as expected'
4
+ RSpec::Core::RakeTask.new('spec') do |t|
5
+ t.rspec_opts = ['--colour', '--format nested']
6
+ t.pattern = 'spec/**/*_spec.rb'
7
+ end
8
+ #rescue LoadError
9
+ # puts "Hiding spec tasks because RSpec is not available"
10
+ #end
metadata ADDED
@@ -0,0 +1,356 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ror-rubycas-server
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.a
5
+ prerelease: 4
6
+ platform: ruby
7
+ authors:
8
+ - Matt Zukowski
9
+ - Christopher Small
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-12-28 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activerecord
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 3.0.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 3.0.0
31
+ - !ruby/object:Gem::Dependency
32
+ name: activesupport
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: 3.0.0
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 3.0.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: sinatra
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: '1.0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: gettext
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: 2.1.0
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 2.1.0
79
+ - !ruby/object:Gem::Dependency
80
+ name: crypt-isaac
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 0.9.1
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 0.9.1
95
+ - !ruby/object:Gem::Dependency
96
+ name: rack-test
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: capybara
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: rspec
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ - !ruby/object:Gem::Dependency
144
+ name: rspec-core
145
+ requirement: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ type: :development
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ! '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: sqlite3
161
+ requirement: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ~>
165
+ - !ruby/object:Gem::Version
166
+ version: 1.3.1
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ~>
173
+ - !ruby/object:Gem::Version
174
+ version: 1.3.1
175
+ - !ruby/object:Gem::Dependency
176
+ name: ruby-debug
177
+ requirement: !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ! '>='
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ type: :development
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ! '>='
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ - !ruby/object:Gem::Dependency
192
+ name: net-ldap
193
+ requirement: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ~>
197
+ - !ruby/object:Gem::Version
198
+ version: 0.1.1
199
+ type: :development
200
+ prerelease: false
201
+ version_requirements: !ruby/object:Gem::Requirement
202
+ none: false
203
+ requirements:
204
+ - - ~>
205
+ - !ruby/object:Gem::Version
206
+ version: 0.1.1
207
+ description: Provides single sign-on authentication for web applications using the
208
+ CAS protocol. Modified to run on read only file systems.
209
+ email:
210
+ - matt@zukowski.ca
211
+ - chris@thoughtnode.com
212
+ executables:
213
+ - rubycas-server
214
+ extensions: []
215
+ extra_rdoc_files:
216
+ - CHANGELOG
217
+ - LICENSE
218
+ - README.textile
219
+ files:
220
+ - CHANGELOG
221
+ - LICENSE
222
+ - README.textile
223
+ - Rakefile
224
+ - setup.rb
225
+ - bin/rubycas-server
226
+ - lib/casserver/authenticators/active_directory_ldap.rb
227
+ - lib/casserver/authenticators/authlogic_crypto_providers/aes256.rb
228
+ - lib/casserver/authenticators/authlogic_crypto_providers/bcrypt.rb
229
+ - lib/casserver/authenticators/authlogic_crypto_providers/md5.rb
230
+ - lib/casserver/authenticators/authlogic_crypto_providers/sha1.rb
231
+ - lib/casserver/authenticators/authlogic_crypto_providers/sha512.rb
232
+ - lib/casserver/authenticators/base.rb
233
+ - lib/casserver/authenticators/client_certificate.rb
234
+ - lib/casserver/authenticators/google.rb
235
+ - lib/casserver/authenticators/ldap.rb
236
+ - lib/casserver/authenticators/ntlm.rb
237
+ - lib/casserver/authenticators/open_id.rb
238
+ - lib/casserver/authenticators/sql.rb
239
+ - lib/casserver/authenticators/sql_authlogic.rb
240
+ - lib/casserver/authenticators/sql_encrypted.rb
241
+ - lib/casserver/authenticators/sql_md5.rb
242
+ - lib/casserver/authenticators/sql_rest_auth.rb
243
+ - lib/casserver/authenticators/test.rb
244
+ - lib/casserver/cas.rb
245
+ - lib/casserver/localization.rb
246
+ - lib/casserver/model.rb
247
+ - lib/casserver/options_hash.rb
248
+ - lib/casserver/server.rb
249
+ - lib/casserver/utils.rb
250
+ - lib/casserver.rb
251
+ - public/themes/cas.css
252
+ - public/themes/notice.png
253
+ - public/themes/ok.png
254
+ - public/themes/simple/bg.png
255
+ - public/themes/simple/favicon.png
256
+ - public/themes/simple/login_box_bg.png
257
+ - public/themes/simple/logo.png
258
+ - public/themes/simple/theme.css
259
+ - public/themes/urbacon/bg.png
260
+ - public/themes/urbacon/login_box_bg.png
261
+ - public/themes/urbacon/logo.png
262
+ - public/themes/urbacon/theme.css
263
+ - public/themes/warning.png
264
+ - po/de_DE/rubycas-server.po
265
+ - po/es_ES/rubycas-server.po
266
+ - po/fr_FR/rubycas-server.po
267
+ - po/ja_JP/rubycas-server.po
268
+ - po/pl_PL/rubycas-server.po
269
+ - po/pt_BR/rubycas-server.po
270
+ - po/ru_RU/rubycas-server.po
271
+ - po/rubycas-server.pot
272
+ - po/zh_CN/rubycas-server.po
273
+ - po/zh_TW/rubycas-server.po
274
+ - resources/init.d.sh
275
+ - tasks/bundler.rake
276
+ - tasks/db/migrate.rake
277
+ - tasks/localization.rake
278
+ - tasks/spec.rake
279
+ - lib/casserver/views/_login_form.erb
280
+ - lib/casserver/views/layout.erb
281
+ - lib/casserver/views/login.erb
282
+ - lib/casserver/views/validate.erb
283
+ - lib/casserver/views/proxy.builder
284
+ - lib/casserver/views/proxy_validate.builder
285
+ - lib/casserver/views/service_validate.builder
286
+ - Gemfile
287
+ - rubycas-server.gemspec
288
+ - spec/alt_config.yml
289
+ - spec/authenticators/ldap_spec.rb
290
+ - spec/casserver_spec.rb
291
+ - spec/database.yml
292
+ - spec/default_config.yml
293
+ - spec/model_spec.rb
294
+ - spec/options_hash_spec.rb
295
+ - spec/spec.opts
296
+ - spec/spec_helper.rb
297
+ - spec/utils_spec.rb
298
+ homepage: http://github.com/metasoarous/read_only_rubycas_server
299
+ licenses: []
300
+ post_install_message: ! '
301
+
302
+ For more information on RubyCAS-Server, see http://code.google.com/p/rubycas-server
303
+
304
+
305
+ If you plan on using RubyCAS-Server with languages other than English, please cd
306
+ into the
307
+
308
+ RubyCAS-Server installation directory (where the gem is installed) and type `rake
309
+ localization:mo`
310
+
311
+ to build the LOCALE_LC files.
312
+
313
+
314
+ '
315
+ rdoc_options:
316
+ - --quiet
317
+ - --title
318
+ - RubyCAS-Server Documentation
319
+ - --opname
320
+ - index.html
321
+ - --line-numbers
322
+ - --main
323
+ - README.md
324
+ - --inline-source
325
+ require_paths:
326
+ - lib
327
+ required_ruby_version: !ruby/object:Gem::Requirement
328
+ none: false
329
+ requirements:
330
+ - - ! '>='
331
+ - !ruby/object:Gem::Version
332
+ version: '0'
333
+ required_rubygems_version: !ruby/object:Gem::Requirement
334
+ none: false
335
+ requirements:
336
+ - - ! '>'
337
+ - !ruby/object:Gem::Version
338
+ version: 1.3.1
339
+ requirements: []
340
+ rubyforge_project:
341
+ rubygems_version: 1.8.24
342
+ signing_key:
343
+ specification_version: 3
344
+ summary: Provides single sign-on authentication for web applications using the CAS
345
+ protocol.
346
+ test_files:
347
+ - spec/alt_config.yml
348
+ - spec/authenticators/ldap_spec.rb
349
+ - spec/casserver_spec.rb
350
+ - spec/database.yml
351
+ - spec/default_config.yml
352
+ - spec/model_spec.rb
353
+ - spec/options_hash_spec.rb
354
+ - spec/spec.opts
355
+ - spec/spec_helper.rb
356
+ - spec/utils_spec.rb