From 467a55acd9651c8a9ce7367b7c7f0ee9d653b108 Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Wed, 07 Aug 2019 15:12:39 +0000 Subject: [PATCH] Add logoutLocal() method that only clears local session and does not logout from the CAS server. --- uphpCAS.php | 16 +++++++++++----- 1 files changed, 11 insertions(+), 5 deletions(-) diff --git a/uphpCAS.php b/uphpCAS.php index 12f8424..98a3134 100644 --- a/uphpCAS.php +++ b/uphpCAS.php @@ -122,10 +122,14 @@ .($returnUrl ? '?service='.urlencode($returnUrl) : ''); } - public function logout($returnUrl = NULL) { + public function logoutLocal() { @session_start(); + unset($_SESSION[$this->sessionName]); + } + + public function logout($returnUrl = NULL) { + $this->logoutLocal(); if($this->isAuthenticated()) { - unset($_SESSION[$this->sessionName]); header('Location: '.$this->logoutUrl($returnUrl)); die(); } elseif($returnUrl) { @@ -228,13 +232,15 @@ } } } catch(Exception $e) { - throw new JasigException('Authentication error: CAS server' - .' response invalid - parse error', 0, $e); - } finally { libxml_clear_errors(); libxml_disable_entity_loader($xmlEntityLoader); libxml_use_internal_errors($xmlInternalErrors); + throw new JasigException('Authentication error: CAS server' + .' response invalid - parse error', 0, $e); } + libxml_clear_errors(); + libxml_disable_entity_loader($xmlEntityLoader); + libxml_use_internal_errors($xmlInternalErrors); $failure = $xml->getElementsByTagName('authenticationFailure'); $success = $xml->getElementsByTagName('authenticationSuccess'); -- Gitblit v1.9.1