diff --git a/datamodels/2.x/authent-cas/src/CASLoginExtension.php b/datamodels/2.x/authent-cas/src/CASLoginExtension.php index 1d0996467..94f32a5c0 100644 --- a/datamodels/2.x/authent-cas/src/CASLoginExtension.php +++ b/datamodels/2.x/authent-cas/src/CASLoginExtension.php @@ -120,12 +120,13 @@ class CASLoginExtension extends AbstractLoginFSMExtension implements iLogoutExte { if (isset($_SESSION['login_mode']) && $_SESSION['login_mode'] == 'cas') { + unset($_SESSION['phpCAS']); + if (LoginWebPage::getIOnExit() === LoginWebPage::EXIT_RETURN) { - // Not allowed if not already connected + // don't display the login page return LoginWebPage::LOGIN_FSM_CONTINUE; } - unset($_SESSION['phpCAS']); if ($iErrorCode != LoginWebPage::EXIT_CODE_MISSINGLOGIN) { $oLoginWebPage = new LoginWebPage(); diff --git a/tests/php-unit-tests/unitary-tests/webservices/CliResetSessionTest.php b/tests/php-unit-tests/unitary-tests/webservices/CliResetSessionTest.php index e4c83bfdd..cd03f3cfd 100644 --- a/tests/php-unit-tests/unitary-tests/webservices/CliResetSessionTest.php +++ b/tests/php-unit-tests/unitary-tests/webservices/CliResetSessionTest.php @@ -109,7 +109,7 @@ class CliResetSessionTest extends ItopDataTestCase 'sConfiguredLoginModes' => 'form|external|basic|url', 'sForcedLoginMode' => 'url', ], - 'cas / cas forced' => [ + 'nominal / cas forced' => [ 'sConfiguredLoginModes' => 'form|external|basic|cas', 'sForcedLoginMode' => 'cas', ],