*/ class LSauthMethod_CAS extends LSauthMethod { public function __construct() { LSauth :: disableLoginForm(); if (!parent :: LSauthMethod()) return; if (LSsession :: includeFile(PHP_CAS_PATH)) { if (defined('PHP_CAS_DEBUG_FILE')) { phpCAS::setDebug(PHP_CAS_DEBUG_FILE); } phpCAS::client(constant(LSAUTH_CAS_VERSION),LSAUTH_CAS_SERVER_HOSTNAME,LSAUTH_CAS_SERVER_PORT,LSAUTH_CAS_SERVER_URI,false); if (LSAUTH_CAS_SERVER_NO_SSL_VALIDATION) { phpCAS::setNoCasServerValidation(); } if (defined('LSAUTH_CAS_SERVER_SSL_CERT')) { phpCAS::setCasServerCert(LSAUTH_CAS_SERVER_SSL_CERT); } if (defined('LSAUTH_CAS_SERVER_SSL_CACERT')) { phpCAS::setCasServerCACert(LSAUTH_CAS_SERVER_SSL_CACERT); } if (defined('LSAUTH_CAS_CURL_SSLVERION')) { phpCAS::setExtraCurlOption(CURLOPT_SSLVERSION,LSAUTH_CAS_CURL_SSLVERION); } if (LSAUTH_CAS_DISABLE_LOGOUT) { LSauth :: disableLogoutBtn(); } return true; } else { LSerror :: addErrorCode('LSauthMethod_CAS_01'); } return false; } /** * Check Auth Data * * Return authentication data or false * * @retval Array|false Array of authentication data or False **/ public function getAuthData() { if (class_exists('phpCAS')) { // Launch Auth phpCAS::forceAuthentication(); $this -> authData = array( 'username' => phpCAS::getUser() ); return $this -> authData; } return; } /** * Logout * * @retval boolean True on success or False **/ public function logout() { if(class_exists('phpCAS')) { if (LSauth :: displayLogoutBtn()) { phpCAS :: forceAuthentication(); phpCAS :: logout(); return true; } } return; } } /* * Error Codes */ LSerror :: defineError('LSauthMethod_CAS_01', _("LSauthMethod_CAS : Failed to load phpCAS.") );