mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-06-01 09:42:13 +00:00
Set LogoutRequestRepository on Saml2 LogoutSuccessHandler
Closes gh-11363
This commit is contained in:
parent
2a95a24390
commit
bd4e0fb5db
@ -272,6 +272,7 @@ public final class Saml2LogoutConfigurer<H extends HttpSecurityBuilder<H>>
|
|||||||
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);
|
||||||
LogoutFilter logoutFilter = new LogoutFilter(logoutRequestSuccessHandler, logoutHandlers);
|
LogoutFilter logoutFilter = new LogoutFilter(logoutRequestSuccessHandler, logoutHandlers);
|
||||||
logoutFilter.setLogoutRequestMatcher(createLogoutMatcher());
|
logoutFilter.setLogoutRequestMatcher(createLogoutMatcher());
|
||||||
return postProcess(logoutFilter);
|
return postProcess(logoutFilter);
|
||||||
|
@ -85,6 +85,7 @@ import org.springframework.web.util.UriUtils;
|
|||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.hamcrest.Matchers.containsString;
|
import static org.hamcrest.Matchers.containsString;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.BDDMockito.given;
|
import static org.mockito.BDDMockito.given;
|
||||||
import static org.mockito.BDDMockito.mock;
|
import static org.mockito.BDDMockito.mock;
|
||||||
import static org.mockito.BDDMockito.verify;
|
import static org.mockito.BDDMockito.verify;
|
||||||
@ -407,6 +408,18 @@ public class Saml2LogoutConfigurerTests {
|
|||||||
verify(getBean(Saml2LogoutResponseValidator.class)).validate(any());
|
verify(getBean(Saml2LogoutResponseValidator.class)).validate(any());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void saml2LogoutWhenCustomLogoutRequestRepositoryThenUses() throws Exception {
|
||||||
|
this.spring.register(Saml2LogoutComponentsConfig.class).autowire();
|
||||||
|
RelyingPartyRegistration registration = this.repository.findByRegistrationId("registration-id");
|
||||||
|
Saml2LogoutRequest logoutRequest = Saml2LogoutRequest.withRelyingPartyRegistration(registration)
|
||||||
|
.samlRequest(this.rpLogoutRequest).id(this.rpLogoutRequestId).relayState(this.rpLogoutRequestRelayState)
|
||||||
|
.parameters((params) -> params.put("Signature", this.rpLogoutRequestSignature)).build();
|
||||||
|
given(getBean(Saml2LogoutRequestResolver.class).resolve(any(), any())).willReturn(logoutRequest);
|
||||||
|
this.mvc.perform(post("/logout").with(authentication(this.user)).with(csrf()));
|
||||||
|
verify(getBean(Saml2LogoutRequestRepository.class)).saveLogoutRequest(eq(logoutRequest), any(), any());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void saml2LogoutWhenLogoutGetThenLogsOutAndSendsLogoutRequest() throws Exception {
|
public void saml2LogoutWhenLogoutGetThenLogsOutAndSendsLogoutRequest() throws Exception {
|
||||||
this.spring.register(Saml2LogoutWithHttpGet.class).autowire();
|
this.spring.register(Saml2LogoutWithHttpGet.class).autowire();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user