array(
		// Context of the CAS Server
		'context' => '/cas',
		// CAS server port
		'port' => 443,
		// Disable CAS server Validation
		'ssl_validation' => false,
		// If ssl_validation is enable you must define
		'ssl_cacert_path' => '/path/to/cacert.crt',
		'ssl_cn_validation' => true
	)
);
// FQDN of CAS server
$default_cas_server=key($cas_servers);
// PhpCAS log file
$phpCAS_logfile='/tmp/cas.log';
/*
 ************************************
 *               Main               *
 ************************************
*/
$warnings=array();
session_start();
require $phpCAS_path;
CAS_GracefullTerminationException::throwInsteadOfExiting();
if (isset($_REQUEST['server']) && !isset($cas_servers[$_REQUEST['server']])) {
	$warnings[]="Invalid CAS server choiced";
	unset($_REQUEST['server']);
}
if (isset($_REQUEST['server'])) {
	$cas_host=$_REQUEST['server'];
	if ($_SESSION['cas_server']!=$cas_host) {
		$_SESSION['cas_server']=$cas_host;
		unset($_SESSION['phpCAS']['user']);
	}
}
elseif (isset($_SESSION['cas_server'])) {
	$cas_host=$_SESSION['cas_server'];
}
else {
	$cas_host=$default_cas_server;
	$_SESSION['cas_server']=$cas_host;
	unset($_SESSION['phpCAS']['user']);
}
$_SESSION['cas_server']=$cas_host;
$_show_cas_client_config=false;
function show_cas_client_config() {
	global $phpCAS_config, $_show_cas_client_config;
	if ($_show_cas_client_config) return true;
	$_show_cas_client_config=true;
	echo "
CAS Client configuration
";
	foreach($phpCAS_config as $cfg_name => $cfg_val) {
		echo "- $cfg_name : $cfg_val";
	}
	echo "
";
}
$_show_warnings=false;
function show_warnings() {
	global $warnings,$_show_warnings;
	if ($_show_warnings) return true;
	$_show_warnings=true;
	if (!empty($warnings)) {
		echo "Warnings message
";
		foreach ($warnings as $msg) {
			echo "- $msg";
		}
		echo "
";
	}
}
function show_cas_log() {
	global $phpCAS_logfile;
	echo "PhpCAS Debug Log
";
	if (is_writable($phpCAS_logfile)) {
		$lines=file($phpCAS_logfile);
		if (is_array($lines)) {
			echo ''.implode('',$lines).'';
		}
		else {
			echo "Error reading PhpCAS debug log file ($phpCAS_logfile).";
		}
	}
	else {
		echo "PhpCAS debug log file does not exists or is not writable ($phpCAS_logfile).";
	}
}
function show_user_infos() {
	echo "Login : ".phpCAS::getUser()."
";
	echo "Attributes : ".print_r(phpCAS::getAttributes(),True).'
';
}
?>
	Test CAS
Test CAS Application
CAS server selection
Menu
CAS Client Initialization ...
 $cas_host,
	'CAS server port' => $cas_servers[$cas_host]['port'],
	'CAS server context' => $cas_servers[$cas_host]['context'],
);
if (is_writable($phpCAS_logfile)) {
	if (isset($_REQUEST['truncatelog'])) {
		$fh = fopen($phpCAS_logfile, 'w');
		fclose($fh);
	}
	$phpCAS_config['Debug file'] = $phpCAS_logfile;
	phpCAS::setDebug($phpCAS_logfile);
}
phpCAS::client(CAS_VERSION_2_0, $cas_host, $cas_servers[$cas_host]['port'], $cas_servers[$cas_host]['context']);
echo "Client successfully initialized
";
if ($cas_servers[$cas_host]['ssl_validation']===true) {
	if (is_readable($cas_servers[$cas_host]['ssl_cacert_path'])) {
		$phpCAS_config['SSL Validation']='Enabled';
		$phpCAS_config['SSL CA Cert Validation File']=$cas_servers[$cas_host]['ssl_cacert_path'];
		$phpCAS_config['SSL CN Validation']=($cas_servers[$cas_host]['ssl_cn_validation']?'Enabled':'Disabled');
		phpCAS::setCasServerCACert($cas_servers[$cas_host]['ssl_cacert_path'],$cas_servers[$cas_host]['ssl_cn_validation']);
	}
	else {
		$warnings[]='SSL validation enable for this server but CA Cert file configured does not exists or is not readable';
		$phpCAS_config['SSL Validation']='Disabled';
		phpCAS::setNoCasServerValidation();
	}
}
else {
	$phpCAS_config['SSL Validation']='Disabled';
	phpCAS::setNoCasServerValidation();
}
phpCAS::setCacheTimesForAuthRecheck(0);
show_cas_client_config();
show_warnings();
?>
Action
State before running action
Running action...
Successfully authenticated";
			break;
		case 'caslogout':
			phpCAS::forceAuthentication();
			phpCAS::logout();
			break;
		case 'locallogout':
			unset($_SESSION['phpCAS']);
			if (!isset($_SESSION['phpCAS'])) {
				echo "Successfully logout
";
			}
			else {
				echo "Failed to unset phpCAS session informations
";
			}
			break;
		default:
			echo "Incorrect parameters
";
	}
}
else {
	echo "Nothing to do";
}
if (phpCAS::isAuthenticated()) {
	echo "Authenticated user informations
";
	show_user_infos();
}
// End of catch
}
catch (CAS_GracefullTerminationException $e) {
	echo "PhpCAS return exception
";
	show_cas_client_config();
	show_warnings();
}
show_cas_log();
?>