From 1752fa45a14815ae9d6d46fd6236cd376796fdbc Mon Sep 17 00:00:00 2001 From: Andreas Asplund Date: Thu, 1 Feb 2024 21:26:17 +0100 Subject: [PATCH 1/2] Saml2 LogoutFilter Is Placed Before Common LogoutFilter Closes gh-14525 --- .../configurers/saml2/Saml2LogoutConfigurer.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/saml2/Saml2LogoutConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/saml2/Saml2LogoutConfigurer.java index a54bbbc62f1..04deca6960b 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/saml2/Saml2LogoutConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/saml2/Saml2LogoutConfigurer.java @@ -268,12 +268,14 @@ private Saml2LogoutResponseFilter createLogoutResponseProcessingFilter( return postProcess(logoutResponseFilter); } - private LogoutFilter createRelyingPartyLogoutFilter(RelyingPartyRegistrationResolver registrations) { + private Saml2RelyingPartyInitiatedLogoutFilter createRelyingPartyLogoutFilter( + RelyingPartyRegistrationRepository registrations) { LogoutHandler[] logoutHandlers = this.logoutHandlers.toArray(new LogoutHandler[0]); Saml2RelyingPartyInitiatedLogoutSuccessHandler logoutRequestSuccessHandler = createSaml2LogoutRequestSuccessHandler( registrations); logoutRequestSuccessHandler.setLogoutRequestRepository(this.logoutRequestConfigurer.logoutRequestRepository); - LogoutFilter logoutFilter = new LogoutFilter(logoutRequestSuccessHandler, logoutHandlers); + Saml2RelyingPartyInitiatedLogoutFilter logoutFilter = new Saml2RelyingPartyInitiatedLogoutFilter( + logoutRequestSuccessHandler, logoutHandlers); logoutFilter.setLogoutRequestMatcher(createLogoutMatcher()); return postProcess(logoutFilter); } @@ -568,4 +570,13 @@ private static Saml2LogoutRequestResolver getLogoutRequestResolver( } + private static class Saml2RelyingPartyInitiatedLogoutFilter extends LogoutFilter { + + public Saml2RelyingPartyInitiatedLogoutFilter(LogoutSuccessHandler logoutSuccessHandler, + LogoutHandler... handlers) { + super(logoutSuccessHandler, handlers); + } + + } + } From acfd3fb2f3b2cec09a1d2b5caa239b2fe705ac6f Mon Sep 17 00:00:00 2001 From: Josh Cummings Date: Mon, 5 Feb 2024 14:46:35 -0700 Subject: [PATCH 2/2] Fix Compilation Errors Issue gh-14525 --- .../web/configurers/saml2/Saml2LogoutConfigurer.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/saml2/Saml2LogoutConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/saml2/Saml2LogoutConfigurer.java index 04deca6960b..e067e2b8cce 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/saml2/Saml2LogoutConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/saml2/Saml2LogoutConfigurer.java @@ -269,7 +269,7 @@ private Saml2LogoutResponseFilter createLogoutResponseProcessingFilter( } private Saml2RelyingPartyInitiatedLogoutFilter createRelyingPartyLogoutFilter( - RelyingPartyRegistrationRepository registrations) { + RelyingPartyRegistrationResolver registrations) { LogoutHandler[] logoutHandlers = this.logoutHandlers.toArray(new LogoutHandler[0]); Saml2RelyingPartyInitiatedLogoutSuccessHandler logoutRequestSuccessHandler = createSaml2LogoutRequestSuccessHandler( registrations); @@ -572,8 +572,7 @@ private static Saml2LogoutRequestResolver getLogoutRequestResolver( private static class Saml2RelyingPartyInitiatedLogoutFilter extends LogoutFilter { - public Saml2RelyingPartyInitiatedLogoutFilter(LogoutSuccessHandler logoutSuccessHandler, - LogoutHandler... handlers) { + Saml2RelyingPartyInitiatedLogoutFilter(LogoutSuccessHandler logoutSuccessHandler, LogoutHandler... handlers) { super(logoutSuccessHandler, handlers); }