Fix SAML logout propagation with Redirect binding (#2449)

This commit is contained in:
Maxime Besson 2021-01-27 22:10:12 +01:00
parent 7166a96c88
commit c844cc25b0

View File

@ -2595,27 +2595,20 @@ sub sendLogoutRequestToProvider {
$self->logger->debug('Relay state set');
}
# Build the request
unless ( $logout->request() ) {
$self->logger->debug("No logout request found, build it");
# Initiate the logout request
unless ( $self->initLogoutRequest( $logout, $providerID, $method ) ) {
$self->logger->error(
"Initiate logout request failed for $providerID");
return ( 0, $method, undef );
}
# Build request message
unless ( $self->buildLogoutRequestMsg($logout) ) {
$self->logger->error("Build logout request failed for $providerID");
return ( 0, $method, undef );
}
$self->logger->debug("Request built for $providerID");
# Initiate the logout request
unless ( $self->initLogoutRequest( $logout, $providerID, $method ) ) {
$self->logger->error("Initiate logout request failed for $providerID");
return ( 0, $method, undef );
}
# Build request message
unless ( $self->buildLogoutRequestMsg($logout) ) {
$self->logger->error("Build logout request failed for $providerID");
return ( 0, $method, undef );
}
$self->logger->debug("Request built for $providerID");
# Keep message ID in memory to prevent replay
my $samlID = $logout->request()->ID;
unless ( $self->storeReplayProtection($samlID) ) {