| | |
| | | .($returnUrl ? '?service='.urlencode($returnUrl) : ''); |
| | | } |
| | | |
| | | public function logoutLocal() { |
| | | @session_start(); |
| | | unset($_SESSION[$this->sessionName]); |
| | | } |
| | | |
| | | public function logout($returnUrl = NULL) { |
| | | session_start(); |
| | | $this->logoutLocal(); |
| | | if($this->isAuthenticated()) { |
| | | unset($_SESSION[$this->sessionName]); |
| | | header('Location: '.$this->logoutUrl($returnUrl)); |
| | | die(); |
| | | } elseif($returnUrl) { |
| | |
| | | } |
| | | |
| | | public function authenticate() { |
| | | session_start(); |
| | | @session_start(); |
| | | if($this->isAuthenticated()) { |
| | | return $_SESSION[$this->sessionName]; |
| | | } elseif(isset($_REQUEST['ticket'])) { |
| | | $user = $this->verifyTicket($_REQUEST['ticket']); |
| | | session_regenerate_id(); |
| | | $_SESSION[$this->sessionName] = $user; |
| | | return $user; |
| | | } else { |
| | |
| | | } |
| | | } |
| | | } 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'); |