1
1
/*
2
- * Copyright 2002-2022 the original author or authors.
2
+ * Copyright 2002-2023 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
39
39
import org .springframework .security .saml2 .provider .service .authentication .logout .Saml2LogoutResponseValidator ;
40
40
import org .springframework .security .saml2 .provider .service .registration .RelyingPartyRegistration ;
41
41
import org .springframework .security .saml2 .provider .service .registration .RelyingPartyRegistrationRepository ;
42
- import org .springframework .security .saml2 .provider .service .web .DefaultRelyingPartyRegistrationResolver ;
43
- import org .springframework .security .saml2 .provider .service .web .RelyingPartyRegistrationResolver ;
44
42
import org .springframework .security .saml2 .provider .service .web .authentication .logout .HttpSessionLogoutRequestRepository ;
45
43
import org .springframework .security .saml2 .provider .service .web .authentication .logout .OpenSaml4LogoutRequestResolver ;
46
44
import org .springframework .security .saml2 .provider .service .web .authentication .logout .OpenSaml4LogoutResponseResolver ;
45
+ import org .springframework .security .saml2 .provider .service .web .authentication .logout .OpenSamlLogoutRequestValidatorParametersResolver ;
47
46
import org .springframework .security .saml2 .provider .service .web .authentication .logout .Saml2LogoutRequestFilter ;
48
47
import org .springframework .security .saml2 .provider .service .web .authentication .logout .Saml2LogoutRequestRepository ;
49
48
import org .springframework .security .saml2 .provider .service .web .authentication .logout .Saml2LogoutRequestResolver ;
@@ -216,17 +215,12 @@ public void configure(H http) throws Exception {
216
215
this .logoutHandlers = logout .getLogoutHandlers ();
217
216
this .logoutSuccessHandler = logout .getLogoutSuccessHandler ();
218
217
}
219
- RelyingPartyRegistrationResolver registrations = relyingPartyRegistrationResolver (http );
218
+ RelyingPartyRegistrationRepository registrations = getRelyingPartyRegistrationRepository (http );
220
219
http .addFilterBefore (createLogoutRequestProcessingFilter (registrations ), CsrfFilter .class );
221
220
http .addFilterBefore (createLogoutResponseProcessingFilter (registrations ), CsrfFilter .class );
222
221
http .addFilterBefore (createRelyingPartyLogoutFilter (registrations ), LogoutFilter .class );
223
222
}
224
223
225
- private RelyingPartyRegistrationResolver relyingPartyRegistrationResolver (H http ) {
226
- RelyingPartyRegistrationRepository registrations = getRelyingPartyRegistrationRepository (http );
227
- return new DefaultRelyingPartyRegistrationResolver (registrations );
228
- }
229
-
230
224
private RelyingPartyRegistrationRepository getRelyingPartyRegistrationRepository (H http ) {
231
225
if (this .relyingPartyRegistrationRepository != null ) {
232
226
return this .relyingPartyRegistrationRepository ;
@@ -242,26 +236,29 @@ private RelyingPartyRegistrationRepository getRelyingPartyRegistrationRepository
242
236
}
243
237
244
238
private Saml2LogoutRequestFilter createLogoutRequestProcessingFilter (
245
- RelyingPartyRegistrationResolver registrations ) {
239
+ RelyingPartyRegistrationRepository registrations ) {
246
240
LogoutHandler [] logoutHandlers = this .logoutHandlers .toArray (new LogoutHandler [0 ]);
247
241
Saml2LogoutResponseResolver logoutResponseResolver = createSaml2LogoutResponseResolver (registrations );
248
- Saml2LogoutRequestFilter filter = new Saml2LogoutRequestFilter (registrations ,
242
+ RequestMatcher requestMatcher = createLogoutRequestMatcher ();
243
+ OpenSamlLogoutRequestValidatorParametersResolver parameters = new OpenSamlLogoutRequestValidatorParametersResolver (
244
+ registrations );
245
+ parameters .setRequestMatcher (requestMatcher );
246
+ Saml2LogoutRequestFilter filter = new Saml2LogoutRequestFilter (parameters ,
249
247
this .logoutRequestConfigurer .logoutRequestValidator (), logoutResponseResolver , logoutHandlers );
250
- filter .setLogoutRequestMatcher (createLogoutRequestMatcher ());
251
248
filter .setSecurityContextHolderStrategy (getSecurityContextHolderStrategy ());
252
249
return postProcess (filter );
253
250
}
254
251
255
252
private Saml2LogoutResponseFilter createLogoutResponseProcessingFilter (
256
- RelyingPartyRegistrationResolver registrations ) {
253
+ RelyingPartyRegistrationRepository registrations ) {
257
254
Saml2LogoutResponseFilter logoutResponseFilter = new Saml2LogoutResponseFilter (registrations ,
258
255
this .logoutResponseConfigurer .logoutResponseValidator (), this .logoutSuccessHandler );
259
256
logoutResponseFilter .setLogoutRequestMatcher (createLogoutResponseMatcher ());
260
257
logoutResponseFilter .setLogoutRequestRepository (this .logoutRequestConfigurer .logoutRequestRepository );
261
258
return postProcess (logoutResponseFilter );
262
259
}
263
260
264
- private LogoutFilter createRelyingPartyLogoutFilter (RelyingPartyRegistrationResolver registrations ) {
261
+ private LogoutFilter createRelyingPartyLogoutFilter (RelyingPartyRegistrationRepository registrations ) {
265
262
LogoutHandler [] logoutHandlers = this .logoutHandlers .toArray (new LogoutHandler [0 ]);
266
263
Saml2RelyingPartyInitiatedLogoutSuccessHandler logoutRequestSuccessHandler = createSaml2LogoutRequestSuccessHandler (
267
264
registrations );
@@ -290,15 +287,15 @@ private RequestMatcher createLogoutResponseMatcher() {
290
287
}
291
288
292
289
private Saml2RelyingPartyInitiatedLogoutSuccessHandler createSaml2LogoutRequestSuccessHandler (
293
- RelyingPartyRegistrationResolver relyingPartyRegistrationResolver ) {
290
+ RelyingPartyRegistrationRepository registrations ) {
294
291
Saml2LogoutRequestResolver logoutRequestResolver = this .logoutRequestConfigurer
295
- .logoutRequestResolver (relyingPartyRegistrationResolver );
292
+ .logoutRequestResolver (registrations );
296
293
return new Saml2RelyingPartyInitiatedLogoutSuccessHandler (logoutRequestResolver );
297
294
}
298
295
299
296
private Saml2LogoutResponseResolver createSaml2LogoutResponseResolver (
300
- RelyingPartyRegistrationResolver relyingPartyRegistrationResolver ) {
301
- return this .logoutResponseConfigurer .logoutResponseResolver (relyingPartyRegistrationResolver );
297
+ RelyingPartyRegistrationRepository registrations ) {
298
+ return this .logoutResponseConfigurer .logoutResponseResolver (registrations );
302
299
}
303
300
304
301
private <C > C getBeanOrNull (Class <C > clazz ) {
@@ -385,12 +382,11 @@ private Saml2LogoutRequestValidator logoutRequestValidator() {
385
382
return this .logoutRequestValidator ;
386
383
}
387
384
388
- private Saml2LogoutRequestResolver logoutRequestResolver (
389
- RelyingPartyRegistrationResolver relyingPartyRegistrationResolver ) {
385
+ private Saml2LogoutRequestResolver logoutRequestResolver (RelyingPartyRegistrationRepository registrations ) {
390
386
if (this .logoutRequestResolver != null ) {
391
387
return this .logoutRequestResolver ;
392
388
}
393
- return new OpenSaml4LogoutRequestResolver (relyingPartyRegistrationResolver );
389
+ return new OpenSaml4LogoutRequestResolver (registrations );
394
390
}
395
391
396
392
}
@@ -454,10 +450,9 @@ private Saml2LogoutResponseValidator logoutResponseValidator() {
454
450
return this .logoutResponseValidator ;
455
451
}
456
452
457
- private Saml2LogoutResponseResolver logoutResponseResolver (
458
- RelyingPartyRegistrationResolver relyingPartyRegistrationResolver ) {
453
+ private Saml2LogoutResponseResolver logoutResponseResolver (RelyingPartyRegistrationRepository registrations ) {
459
454
if (this .logoutResponseResolver == null ) {
460
- return new OpenSaml4LogoutResponseResolver (relyingPartyRegistrationResolver );
455
+ return new OpenSaml4LogoutResponseResolver (registrations );
461
456
}
462
457
return this .logoutResponseResolver ;
463
458
}
0 commit comments