saml_idp 0.7.2 → 0.16.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.
- checksums.yaml +5 -5
- data/Gemfile +1 -1
- data/README.md +59 -52
- data/lib/saml_idp/assertion_builder.rb +28 -3
- data/lib/saml_idp/configurator.rb +7 -1
- data/lib/saml_idp/controller.rb +21 -13
- data/lib/saml_idp/encryptor.rb +0 -1
- data/lib/saml_idp/fingerprint.rb +19 -0
- data/lib/saml_idp/incoming_metadata.rb +22 -1
- data/lib/saml_idp/metadata_builder.rb +23 -8
- data/lib/saml_idp/persisted_metadata.rb +4 -0
- data/lib/saml_idp/request.rb +26 -6
- data/lib/saml_idp/response_builder.rb +26 -6
- data/lib/saml_idp/saml_response.rb +62 -28
- data/lib/saml_idp/service_provider.rb +15 -6
- data/lib/saml_idp/signable.rb +1 -2
- data/lib/saml_idp/version.rb +1 -1
- data/lib/saml_idp/xml_security.rb +1 -1
- data/lib/saml_idp.rb +2 -1
- data/saml_idp.gemspec +45 -42
- data/spec/acceptance/idp_controller_spec.rb +5 -4
- data/spec/lib/saml_idp/algorithmable_spec.rb +6 -6
- data/spec/lib/saml_idp/assertion_builder_spec.rb +151 -8
- data/spec/lib/saml_idp/attribute_decorator_spec.rb +8 -8
- data/spec/lib/saml_idp/configurator_spec.rb +9 -7
- data/spec/lib/saml_idp/controller_spec.rb +53 -20
- data/spec/lib/saml_idp/encryptor_spec.rb +4 -4
- data/spec/lib/saml_idp/fingerprint_spec.rb +14 -0
- data/spec/lib/saml_idp/incoming_metadata_spec.rb +60 -0
- data/spec/lib/saml_idp/metadata_builder_spec.rb +30 -17
- data/spec/lib/saml_idp/name_id_formatter_spec.rb +3 -3
- data/spec/lib/saml_idp/request_spec.rb +78 -27
- data/spec/lib/saml_idp/response_builder_spec.rb +5 -3
- data/spec/lib/saml_idp/saml_response_spec.rb +127 -12
- data/spec/lib/saml_idp/service_provider_spec.rb +2 -2
- data/spec/lib/saml_idp/signable_spec.rb +1 -1
- data/spec/lib/saml_idp/signature_builder_spec.rb +2 -2
- data/spec/lib/saml_idp/signed_info_builder_spec.rb +3 -3
- data/spec/rails_app/app/controllers/saml_controller.rb +1 -1
- data/spec/rails_app/app/controllers/saml_idp_controller.rb +55 -3
- data/{app → spec/rails_app/app}/views/saml_idp/idp/new.html.erb +1 -5
- data/{app → spec/rails_app/app}/views/saml_idp/idp/saml_post.html.erb +1 -1
- data/spec/rails_app/config/application.rb +1 -6
- data/spec/rails_app/config/boot.rb +1 -1
- data/spec/rails_app/config/environments/development.rb +2 -5
- data/spec/rails_app/config/environments/production.rb +1 -0
- data/spec/rails_app/config/environments/test.rb +1 -0
- data/spec/spec_helper.rb +23 -1
- data/spec/support/certificates/sp_cert_req.csr +12 -0
- data/spec/support/certificates/sp_private_key.pem +16 -0
- data/spec/support/certificates/sp_x509_cert.crt +18 -0
- data/spec/support/saml_request_macros.rb +66 -4
- data/spec/support/security_helpers.rb +10 -0
- data/spec/xml_security_spec.rb +12 -12
- metadata +135 -81
- data/app/controllers/saml_idp/idp_controller.rb +0 -59
- data/spec/lib/saml_idp/.assertion_builder_spec.rb.swp +0 -0
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: saml_idp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Phenow
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,169 +16,211 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '5.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '5.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: builder
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '3.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '3.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: nokogiri
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.6.2
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 1.6.2
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rexml
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: xmlenc
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.7.1
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.7.1
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: activeresource
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- - "
|
87
|
+
- - ">="
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
89
|
+
version: '5.1'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- - "
|
94
|
+
- - ">="
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
96
|
+
version: '5.1'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
98
|
+
name: appraisal
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- - "
|
101
|
+
- - ">="
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0
|
103
|
+
version: '0'
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- - "
|
108
|
+
- - ">="
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0
|
110
|
+
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
112
|
+
name: byebug
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
|
-
- - "
|
115
|
+
- - ">="
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
117
|
+
version: '0'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
|
-
- - "
|
122
|
+
- - ">="
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
124
|
+
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
126
|
+
name: capybara
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- - "
|
129
|
+
- - ">="
|
116
130
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
131
|
+
version: '2.16'
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
|
-
- - "
|
136
|
+
- - ">="
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
138
|
+
version: '2.16'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: rails
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- - "
|
143
|
+
- - ">="
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
145
|
+
version: '5.2'
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- - "
|
150
|
+
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
152
|
+
version: '5.2'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
154
|
+
name: rake
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- - "
|
157
|
+
- - ">="
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
159
|
+
version: '0'
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- - "
|
164
|
+
- - ">="
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
166
|
+
version: '0'
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
168
|
+
name: rspec
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
|
-
- - "
|
171
|
+
- - ">="
|
158
172
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
173
|
+
version: 3.7.0
|
160
174
|
type: :development
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
|
-
- - "
|
178
|
+
- - ">="
|
165
179
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
180
|
+
version: 3.7.0
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
182
|
+
name: ruby-saml
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
170
184
|
requirements:
|
171
185
|
- - ">="
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
187
|
+
version: 1.7.2
|
174
188
|
type: :development
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
192
|
- - ">="
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
181
|
-
|
194
|
+
version: 1.7.2
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: simplecov
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: timecop
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0.8'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0.8'
|
223
|
+
description: SAML IdP (Identity Provider) Library for Ruby
|
182
224
|
email: jon.phenow@sportngin.com
|
183
225
|
executables: []
|
184
226
|
extensions: []
|
@@ -187,9 +229,6 @@ files:
|
|
187
229
|
- Gemfile
|
188
230
|
- LICENSE
|
189
231
|
- README.md
|
190
|
-
- app/controllers/saml_idp/idp_controller.rb
|
191
|
-
- app/views/saml_idp/idp/new.html.erb
|
192
|
-
- app/views/saml_idp/idp/saml_post.html.erb
|
193
232
|
- lib/saml_idp.rb
|
194
233
|
- lib/saml_idp/algorithmable.rb
|
195
234
|
- lib/saml_idp/assertion_builder.rb
|
@@ -200,6 +239,7 @@ files:
|
|
200
239
|
- lib/saml_idp/default.rb
|
201
240
|
- lib/saml_idp/encryptor.rb
|
202
241
|
- lib/saml_idp/engine.rb
|
242
|
+
- lib/saml_idp/fingerprint.rb
|
203
243
|
- lib/saml_idp/hashable.rb
|
204
244
|
- lib/saml_idp/incoming_metadata.rb
|
205
245
|
- lib/saml_idp/logout_builder.rb
|
@@ -220,13 +260,14 @@ files:
|
|
220
260
|
- saml_idp.gemspec
|
221
261
|
- spec/acceptance/acceptance_helper.rb
|
222
262
|
- spec/acceptance/idp_controller_spec.rb
|
223
|
-
- spec/lib/saml_idp/.assertion_builder_spec.rb.swp
|
224
263
|
- spec/lib/saml_idp/algorithmable_spec.rb
|
225
264
|
- spec/lib/saml_idp/assertion_builder_spec.rb
|
226
265
|
- spec/lib/saml_idp/attribute_decorator_spec.rb
|
227
266
|
- spec/lib/saml_idp/configurator_spec.rb
|
228
267
|
- spec/lib/saml_idp/controller_spec.rb
|
229
268
|
- spec/lib/saml_idp/encryptor_spec.rb
|
269
|
+
- spec/lib/saml_idp/fingerprint_spec.rb
|
270
|
+
- spec/lib/saml_idp/incoming_metadata_spec.rb
|
230
271
|
- spec/lib/saml_idp/logout_request_builder_spec.rb
|
231
272
|
- spec/lib/saml_idp/logout_response_builder_spec.rb
|
232
273
|
- spec/lib/saml_idp/metadata_builder_spec.rb
|
@@ -251,6 +292,8 @@ files:
|
|
251
292
|
- spec/rails_app/app/mailers/.gitkeep
|
252
293
|
- spec/rails_app/app/models/.gitkeep
|
253
294
|
- spec/rails_app/app/views/layouts/application.html.erb
|
295
|
+
- spec/rails_app/app/views/saml_idp/idp/new.html.erb
|
296
|
+
- spec/rails_app/app/views/saml_idp/idp/saml_post.html.erb
|
254
297
|
- spec/rails_app/config.ru
|
255
298
|
- spec/rails_app/config/application.rb
|
256
299
|
- spec/rails_app/config/boot.rb
|
@@ -291,6 +334,9 @@ files:
|
|
291
334
|
- spec/spec_helper.rb
|
292
335
|
- spec/support/certificates/certificate1
|
293
336
|
- spec/support/certificates/r1_certificate2_base64
|
337
|
+
- spec/support/certificates/sp_cert_req.csr
|
338
|
+
- spec/support/certificates/sp_private_key.pem
|
339
|
+
- spec/support/certificates/sp_x509_cert.crt
|
294
340
|
- spec/support/responses/adfs_response_sha1.xml
|
295
341
|
- spec/support/responses/adfs_response_sha256.xml
|
296
342
|
- spec/support/responses/adfs_response_sha384.xml
|
@@ -312,25 +358,28 @@ files:
|
|
312
358
|
- spec/support/saml_request_macros.rb
|
313
359
|
- spec/support/security_helpers.rb
|
314
360
|
- spec/xml_security_spec.rb
|
315
|
-
homepage:
|
361
|
+
homepage: https://github.com/saml-idp/saml_idp
|
316
362
|
licenses:
|
317
|
-
-
|
318
|
-
metadata:
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
363
|
+
- MIT
|
364
|
+
metadata:
|
365
|
+
homepage_uri: https://github.com/saml-idp/saml_idp
|
366
|
+
source_code_uri: https://github.com/saml-idp/saml_idp
|
367
|
+
bug_tracker_uri: https://github.com/saml-idp/saml_idp/issues
|
368
|
+
documentation_uri: http://rdoc.info/gems/saml_idp/0.16.0
|
369
|
+
post_install_message: |2
|
370
|
+
If you're just recently updating saml_idp - please be aware we've changed the default
|
371
|
+
certificate. See the PR and a description of why we've done this here:
|
372
|
+
https://github.com/saml-idp/saml_idp/pull/29
|
326
373
|
|
327
|
-
|
328
|
-
|
374
|
+
If you just need to see the certificate `bundle open saml_idp` and go to
|
375
|
+
`lib/saml_idp/default.rb`
|
329
376
|
|
330
|
-
|
377
|
+
Similarly, please see the README about certificates - you should avoid using the
|
378
|
+
defaults in a Production environment. Post any issues you to github.
|
331
379
|
|
332
|
-
|
333
|
-
|
380
|
+
** New in Version 0.3.0 **
|
381
|
+
Encrypted Assertions require the xmlenc gem. See the example in the Controller
|
382
|
+
section of the README.
|
334
383
|
rdoc_options:
|
335
384
|
- "--charset=UTF-8"
|
336
385
|
require_paths:
|
@@ -339,28 +388,28 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
339
388
|
requirements:
|
340
389
|
- - ">="
|
341
390
|
- !ruby/object:Gem::Version
|
342
|
-
version: '2.
|
391
|
+
version: '2.5'
|
343
392
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
344
393
|
requirements:
|
345
394
|
- - ">="
|
346
395
|
- !ruby/object:Gem::Version
|
347
396
|
version: '0'
|
348
397
|
requirements: []
|
349
|
-
|
350
|
-
|
351
|
-
signing_key:
|
398
|
+
rubygems_version: 3.3.7
|
399
|
+
signing_key:
|
352
400
|
specification_version: 4
|
353
|
-
summary: SAML Indentity Provider
|
401
|
+
summary: SAML Indentity Provider for Ruby
|
354
402
|
test_files:
|
355
403
|
- spec/acceptance/acceptance_helper.rb
|
356
404
|
- spec/acceptance/idp_controller_spec.rb
|
357
|
-
- spec/lib/saml_idp/.assertion_builder_spec.rb.swp
|
358
405
|
- spec/lib/saml_idp/algorithmable_spec.rb
|
359
406
|
- spec/lib/saml_idp/assertion_builder_spec.rb
|
360
407
|
- spec/lib/saml_idp/attribute_decorator_spec.rb
|
361
408
|
- spec/lib/saml_idp/configurator_spec.rb
|
362
409
|
- spec/lib/saml_idp/controller_spec.rb
|
363
410
|
- spec/lib/saml_idp/encryptor_spec.rb
|
411
|
+
- spec/lib/saml_idp/fingerprint_spec.rb
|
412
|
+
- spec/lib/saml_idp/incoming_metadata_spec.rb
|
364
413
|
- spec/lib/saml_idp/logout_request_builder_spec.rb
|
365
414
|
- spec/lib/saml_idp/logout_response_builder_spec.rb
|
366
415
|
- spec/lib/saml_idp/metadata_builder_spec.rb
|
@@ -385,6 +434,8 @@ test_files:
|
|
385
434
|
- spec/rails_app/app/mailers/.gitkeep
|
386
435
|
- spec/rails_app/app/models/.gitkeep
|
387
436
|
- spec/rails_app/app/views/layouts/application.html.erb
|
437
|
+
- spec/rails_app/app/views/saml_idp/idp/new.html.erb
|
438
|
+
- spec/rails_app/app/views/saml_idp/idp/saml_post.html.erb
|
388
439
|
- spec/rails_app/config.ru
|
389
440
|
- spec/rails_app/config/application.rb
|
390
441
|
- spec/rails_app/config/boot.rb
|
@@ -425,6 +476,9 @@ test_files:
|
|
425
476
|
- spec/spec_helper.rb
|
426
477
|
- spec/support/certificates/certificate1
|
427
478
|
- spec/support/certificates/r1_certificate2_base64
|
479
|
+
- spec/support/certificates/sp_cert_req.csr
|
480
|
+
- spec/support/certificates/sp_private_key.pem
|
481
|
+
- spec/support/certificates/sp_x509_cert.crt
|
428
482
|
- spec/support/responses/adfs_response_sha1.xml
|
429
483
|
- spec/support/responses/adfs_response_sha256.xml
|
430
484
|
- spec/support/responses/adfs_response_sha384.xml
|
@@ -1,59 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module SamlIdp
|
4
|
-
class IdpController < ActionController::Base
|
5
|
-
include SamlIdp::Controller
|
6
|
-
|
7
|
-
unloadable unless Rails::VERSION::MAJOR >= 4
|
8
|
-
protect_from_forgery
|
9
|
-
|
10
|
-
if Rails::VERSION::MAJOR >= 4
|
11
|
-
before_action :validate_saml_request, only: [:new, :create]
|
12
|
-
else
|
13
|
-
before_filter :validate_saml_request, only: [:new, :create]
|
14
|
-
end
|
15
|
-
|
16
|
-
def new
|
17
|
-
render template: "saml_idp/idp/new"
|
18
|
-
end
|
19
|
-
|
20
|
-
def show
|
21
|
-
render xml: SamlIdp.metadata.signed
|
22
|
-
end
|
23
|
-
|
24
|
-
def create
|
25
|
-
unless params[:email].blank? && params[:password].blank?
|
26
|
-
person = idp_authenticate(params[:email], params[:password])
|
27
|
-
if person.nil?
|
28
|
-
@saml_idp_fail_msg = "Incorrect email or password."
|
29
|
-
else
|
30
|
-
@saml_response = idp_make_saml_response(person)
|
31
|
-
render :template => "saml_idp/idp/saml_post", :layout => false
|
32
|
-
return
|
33
|
-
end
|
34
|
-
end
|
35
|
-
render :template => "saml_idp/idp/new"
|
36
|
-
end
|
37
|
-
|
38
|
-
def logout
|
39
|
-
idp_logout
|
40
|
-
@saml_response = idp_make_saml_response(nil)
|
41
|
-
render :template => "saml_idp/idp/saml_post", :layout => false
|
42
|
-
end
|
43
|
-
|
44
|
-
def idp_logout
|
45
|
-
raise NotImplementedError
|
46
|
-
end
|
47
|
-
private :idp_logout
|
48
|
-
|
49
|
-
def idp_authenticate(email, password)
|
50
|
-
raise NotImplementedError
|
51
|
-
end
|
52
|
-
protected :idp_authenticate
|
53
|
-
|
54
|
-
def idp_make_saml_response(person)
|
55
|
-
raise NotImplementedError
|
56
|
-
end
|
57
|
-
protected :idp_make_saml_response
|
58
|
-
end
|
59
|
-
end
|
Binary file
|