|  |  | 
 |  |  |    protected $serverUrl = ''; | 
 |  |  |    protected $serviceUrl; | 
 |  |  |    protected $sessionName = 'uphpCAS-user'; | 
 |  |  |    protected $sessionStarted = FALSE; | 
 |  |  |    protected $method = 'POST'; | 
 |  |  |    protected $caFile = NULL; | 
 |  |  |     | 
 |  |  | 
 |  |  |       $this->caFile = $caFile; | 
 |  |  |    } | 
 |  |  |     | 
 |  |  |    public function session_start() { | 
 |  |  |       if($this->sessionStarted) { | 
 |  |  |          return TRUE; | 
 |  |  |       } | 
 |  |  |       if(version_compare(PHP_VERSION, '7.1.0', '<')) { | 
 |  |  |          @session_start(); | 
 |  |  |       } else { | 
 |  |  |          if(!isset($_SESSION)) { | 
 |  |  |             if(!session_start()) { | 
 |  |  |                throw new RuntimeException('Cannot start session'); | 
 |  |  |             } | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |       $this->sessionStarted = TRUE; | 
 |  |  |       return TRUE; | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public function loginUrl() { | 
 |  |  |       return $this->serverUrl.'/login?method='.$this->method | 
 |  |  |          .'&service='.urlencode($this->serviceUrl); | 
 |  |  | 
 |  |  |    } | 
 |  |  |     | 
 |  |  |    public function logoutLocal() { | 
 |  |  |       @session_start(); | 
 |  |  |       $this->session_start(); | 
 |  |  |       unset($_SESSION[$this->sessionName]); | 
 |  |  |    } | 
 |  |  |     | 
 |  |  | 
 |  |  |    } | 
 |  |  |     | 
 |  |  |    public function isAuthenticated() { | 
 |  |  |       $this->session_start(); | 
 |  |  |       return isset($_SESSION[$this->sessionName]); | 
 |  |  |    } | 
 |  |  |     | 
 |  |  |    public function authenticate() { | 
 |  |  |       @session_start(); | 
 |  |  |       $this->session_start(); | 
 |  |  |       if($this->isAuthenticated()) { | 
 |  |  |          return $_SESSION[$this->sessionName]; | 
 |  |  |       } elseif(isset($_REQUEST['ticket'])) { |