mirror of https://github.com/jacekkow/uphpCAS

Jacek Kowalski
2015-09-03 cc5e2904619f00482ca79a75f4e073795850c8ca
uphpCAS.php
@@ -1,7 +1,7 @@
<?php
// Thrown when internal error occurs
class JasigException extends Exception {}
// Thrown when CAS server return authentication error
// Thrown when CAS server returns authentication error
class JasigAuthException extends JasigException {}
class JasigUser {
@@ -46,7 +46,7 @@
      }
   }
   
   public function getServerUrl($serverUrl) {
   public function getServerUrl() {
      return $this->serverUrl;
   }
   public function setServerUrl($serverUrl) {
@@ -68,13 +68,16 @@
      return $this->serverUrl.'/logout'.($returnUrl ? '?service='.urlencode($returnUrl) : '');
   }
   
   public function logout() {
   public function logout($returnUrl = NULL) {
      session_start();
      if(isset($_SESSION['uphpCAS-user'])) {
      if($this->isAuthenticated()) {
         unset($_SESSION['uphpCAS-user']);
         header('Location: '.$this->logoutUrl($returnUrl));
         die();
      } elseif($returnUrl) {
         header('Location: '.$returnUrl);
         die();
      }
      header('Location: '.$this->logoutUrl());
      die();
   }
   
   public function isAuthenticated() {
@@ -157,8 +160,7 @@
                  break;
            }
         }
      }
      catch(Exception $e) {
      } catch(Exception $e) {
         throw new JasigException('Authentication error: CAS server'
               .' response invalid - parse error', 0, $e);
      } finally {
@@ -192,7 +194,7 @@
         }
         
         $user = trim($user->item(0)->textContent);
         if(strlen($user)<1) {
         if(strlen($user) < 1) {
            throw new JasigException('Authentication error: CAS server'
                  .' response invalid - user value');
         }
@@ -209,9 +211,7 @@
         }
         
         return $jusr;
      }
      else
      {
      } else {
         throw new JasigException('Authentication error: CAS server'
               .' response invalid - required tag not found');
      }