getServerLogoutURL(); // recupere l'URL du logout de CAS $cas_url.="?service=".$CAS->getURL(); // ajoute l'URL du service courant pour revenir header('Location: '.$cas_url); // redirige vers le logout CAS exit; } // procedure pour obtenir un PGT if( !empty($_POST['BT_GET_PGT']) || // obtenir un PGT !empty($_GET['ticket']) || // si on recoit le ticket pour le valider !empty($_GET['pgtIou'])){ // si on recoit le PGT if(!empty($_SESSION['PGT'])){ session_unset(); // supprime la session CAS $_GET['ticket']=''; // supprime le ticket } $CAS = new CASClient(CAS_VERSION_2_0,TRUE,$cas_hostname,$cas_port,$cas_uri);// objet CAS en mode proxy // pour mettre le fichier d'echange de PGT dans un emplacement spécifique //$CAS->setPGTStorageFile('plain',"/home/cri/jmarchal/public_html/www"); $auth = $CAS->isAuthenticated(); // test si deja authentifié (session applicative) if(!$auth) $CAS->forceAuthentication(); // force l'authentification si pas authentifié if($CAS->hasPGT()){ $PGT=$CAS->getPGT(); // recupère le PGT $_SESSION['PGT']=$PGT; // met le PGT EN SESSION } } // procedure pour obtenir ou reobtenir un PT if(!empty($_POST['BT_GET_PT'])){ $CAS = new CASClient(CAS_VERSION_2_0,TRUE,$cas_hostname,$cas_port,$cas_uri);// objet CAS en mode proxy $auth = $CAS->isAuthenticated(); // test si deja authentifié (session applicative) if(!$auth) $CAS->forceAuthentication(); // force l'authentification si pas authentifié if($CAS->hasPGT()){ // si on a un PGT $PT = $CAS->retrievePT($imap_service,$err_code,$output); // on récupère un PT $_SESSION['PT']=$PT; // met le PT EN SESSION } } // CONNEXION IMAP avec PT if(!empty($_POST['BT_IMAP_PT'])){ $CAS = new CASClient(CAS_VERSION_2_0,TRUE,$cas_hostname,$cas_port,$cas_uri);// objet CAS en mode proxy $auth = $CAS->isAuthenticated(); // test si deja authentifié (session applicative) if($auth){ // test si deja authentifié (session applicative) $USER=$CAS->getUser(); // recupere le login utilisateur $CREDENTIAL=$_SESSION['PT']; }else{ $err="Erreur vous devez deja avoir une session CAS (PT)"; } } // variable servant pour l'afficahge correct des boutons if(!empty($PGT) || !empty($_SESSION['PGT'])){ $HAVE_PGT=true; // ON A UN PGT } if(!empty($PT) || !empty($_SESSION['PT'])){ // ON A UN PT $HAVE_PT=true; if (!empty($_SESSION['PT'])){ $CAS_UrlValidTicket = $CAS->getServerBaseURL() . "proxyValidate" . "?ticket=" . $_SESSION['PT'] . "&service=" . $imap_service; } } // login classique IMAP avec user et pass if(!empty($_POST['BT_IMAP_LOGIN'])){ if(!empty($_POST['USER_LOGIN']) && !empty($_POST['USER_PASS'])){ $USER=$_POST['USER_LOGIN']; $_SESSION[USER]=$USER; $CREDENTIAL=$_POST['USER_PASS']; $_SESSION[PASSWORD]=$CREDENTIAL; // pas beau. C'est juste pour une demo $classique=true; }else{ $err="Erreur vous devez fournir un login et un mot de passe
pour une connexion classique."; } } // SI ON A UN USER ET MDP ON TENTE UNE CONNEXION IMAP if(!empty($USER) && !empty($CREDENTIAL)){ $mbox = @imap_open("{".$imap_server.":".$imap_port."}".$imap_box,$USER,$CREDENTIAL); if (! $classique){ $messa = " - PT : $CREDENTIAL"; } if(!$mbox){ $err="Erreur d'ouverture de connexion IMAP.
AVEC :
- USER : $USER$messa
"; }else{ $msg="Ouverture de connexion IMAP OK.
AVEC :
- USER : $USER$messa
"; } } ?> Test IMAP

 

 
PARTIE CAS
PGT obtenu :
PGT courant :
PT obtenu :
PT courant :

 
PARTIE IMAP CLASSIQUE
Login >
Mot de passe >