Saml2 LogoutFilter Is Placed Before Common LogoutFilter

Closes gh-14525
This commit is contained in:
Andreas Asplund 2024-02-01 21:26:17 +01:00 committed by Josh Cummings
parent 05d3c4b695
commit 07e0b1dc37

View File

@ -268,12 +268,14 @@ public final class Saml2LogoutConfigurer<H extends HttpSecurityBuilder<H>>
return postProcess(logoutResponseFilter); return postProcess(logoutResponseFilter);
} }
private LogoutFilter createRelyingPartyLogoutFilter(RelyingPartyRegistrationResolver registrations) { private Saml2RelyingPartyInitiatedLogoutFilter createRelyingPartyLogoutFilter(
RelyingPartyRegistrationRepository registrations) {
LogoutHandler[] logoutHandlers = this.logoutHandlers.toArray(new LogoutHandler[0]); LogoutHandler[] logoutHandlers = this.logoutHandlers.toArray(new LogoutHandler[0]);
Saml2RelyingPartyInitiatedLogoutSuccessHandler logoutRequestSuccessHandler = createSaml2LogoutRequestSuccessHandler( Saml2RelyingPartyInitiatedLogoutSuccessHandler logoutRequestSuccessHandler = createSaml2LogoutRequestSuccessHandler(
registrations); registrations);
logoutRequestSuccessHandler.setLogoutRequestRepository(this.logoutRequestConfigurer.logoutRequestRepository); logoutRequestSuccessHandler.setLogoutRequestRepository(this.logoutRequestConfigurer.logoutRequestRepository);
LogoutFilter logoutFilter = new LogoutFilter(logoutRequestSuccessHandler, logoutHandlers); Saml2RelyingPartyInitiatedLogoutFilter logoutFilter = new Saml2RelyingPartyInitiatedLogoutFilter(
logoutRequestSuccessHandler, logoutHandlers);
logoutFilter.setLogoutRequestMatcher(createLogoutMatcher()); logoutFilter.setLogoutRequestMatcher(createLogoutMatcher());
return postProcess(logoutFilter); return postProcess(logoutFilter);
} }
@ -568,4 +570,13 @@ public final class Saml2LogoutConfigurer<H extends HttpSecurityBuilder<H>>
} }
private static class Saml2RelyingPartyInitiatedLogoutFilter extends LogoutFilter {
public Saml2RelyingPartyInitiatedLogoutFilter(LogoutSuccessHandler logoutSuccessHandler,
LogoutHandler... handlers) {
super(logoutSuccessHandler, handlers);
}
}
} }