Revert 8f5fbb077e
and change the way logout errors are handled
Relating to issue #1668, the proposed fix works when there is only one service provider to logout of. Now that multiple service provider logout is starting to work again on 2.0, we cannot read the remote_ProviderID from the logout object because it is only filled by lasso when actually building the response. Instead, we ignore any error that could occur when building the response, log a warning and show the portal instead. Still better than an internal server error.
This commit is contained in:
parent
0ca4d1a724
commit
d44a042fd5
|
@ -2385,21 +2385,12 @@ sub samldate2timestamp {
|
|||
sub sendLogoutResponseToServiceProvider {
|
||||
my ( $self, $req, $logout, $method ) = @_;
|
||||
|
||||
my $httpmethod = $self->getFirstHttpMethod(
|
||||
$self->lassoServer,
|
||||
$logout->remote_providerID,
|
||||
Lasso::Constants::MD_PROTOCOL_TYPE_SINGLE_LOGOUT
|
||||
);
|
||||
if ( $httpmethod == Lasso::Constants::HTTP_METHOD_NONE ) {
|
||||
$self->logger->warn( "Provider "
|
||||
. $logout->remote_providerID
|
||||
. " has no SingleLogoutService in metadata, staying on portal" );
|
||||
return $self->p->do( $req, [] );
|
||||
}
|
||||
|
||||
# Logout response
|
||||
unless ( $self->buildLogoutResponseMsg($logout) ) {
|
||||
return $self->p->sendError( $req, "Unable to build SLO response", 500 );
|
||||
$self->logger->warn( "Could not build a logout response for provider "
|
||||
. $logout->remote_providerID
|
||||
. ", staying on portal" );
|
||||
return $self->p->do( $req, [] );
|
||||
}
|
||||
|
||||
# Send response depending on request method
|
||||
|
|
Loading…
Reference in New Issue
Block a user