From 4ecce4726b5f196cbed69d79d2ebf80a74bd5829 Mon Sep 17 00:00:00 2001 From: Christophe Maudoux Date: Wed, 30 Sep 2020 21:39:09 +0200 Subject: [PATCH] Remove corrupted sessions (#2334) --- .../Lemonldap/NG/Portal/Plugins/GlobalLogout.pm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/GlobalLogout.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/GlobalLogout.pm index d7986218e..3cb1bb33c 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/GlobalLogout.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/GlobalLogout.pm @@ -12,7 +12,7 @@ use Lemonldap::NG::Portal::Main::Constants qw( PE_SENDRESPONSE ); -our $VERSION = '2.0.9'; +our $VERSION = '2.0.10'; extends qw( Lemonldap::NG::Portal::Main::Plugin @@ -177,7 +177,18 @@ sub activeSessions { $self->module->searchOn( $moduleOptions, $self->conf->{whatToTrace}, $user ); - $self->logger->debug("Building array ref with sessions info..."); + $self->logger->debug('Remove corrupted sessions...'); + my $corrupted = 0; + foreach ( keys %$sessions ) { + unless ( $sessions->{$_}->{_session_kind} eq 'SSO' ) { + delete $sessions->{$_}; + $corrupted++; + } + } + $self->logger->info("$corrupted corrupted session(s) removed") + if $corrupted; + + $self->logger->debug('Build an array ref with sessions info...'); @$activeSessions = map { my $epoch;