Always build request for SAML SLO relay (#1028)

This commit is contained in:
Clément Oudot 2016-07-11 10:04:03 +00:00
parent 745a8ffb81
commit 532032173b

View File

@ -2513,8 +2513,8 @@ sub sendLogoutRequestToProvider {
}
}
# Build the request unless this is a SOAP relay logout request
unless ( $method == Lasso::Constants::HTTP_METHOD_SOAP && $relay ) {
# Build the request
unless ( $logout->request() ) {
$self->lmLog( "No logout request found, build it", 'debug' );
@ -2534,11 +2534,6 @@ sub sendLogoutRequestToProvider {
}
unless ( $logout->request() ) {
$self->lmLog( "Unable to create SAML request", 'error' );
return ( 0, $method, undef );
}
# Keep message ID in memory to prevent replay
my $samlID = $logout->request()->ID;
unless ( $self->storeReplayProtection($samlID) ) {
@ -2622,21 +2617,15 @@ sub sendLogoutRequestToProvider {
# Create a new relay session
my $relayInfos = $self->getSamlSession();
# Build needed information to be stored into samlStorage
unless ( $logout->get_session() && $logout->get_identity() ) {
$self->lmLog(
"No session and identity found into logout object",
'error' );
return ( 0, $method, undef );
}
my $infos;
$infos->{type} = 'relay';
$infos->{_utime} = time;
$infos->{_lassoSessionDump} = $logout->get_session->dump;
$infos->{_lassoIdentityDump} = $logout->get_identity->dump;
$infos->{_providerID} = $providerID;
$infos->{_relayState} = $logout->msg_relayState;
$infos->{type} = 'relay';
$infos->{_utime} = time;
$infos->{_lassoSessionDump} =
$self->{sessionInfo}->{_lassoSessionDump};
$infos->{_lassoIdentityDump} =
$self->{sessionInfo}->{_lassoIdentityDump};
$infos->{_providerID} = $providerID;
$infos->{_relayState} = $logout->msg_relayState;
$relayInfos->update($infos);