Ejemplo n.º 1
0
   // Cette méthode permet de forcer CAS à demander au client de s'authentifier s'il ne trouve aucun client d'authentifié.
   // (redirige vers le serveur d'authentification si aucun utilisateur authentifié n'a été trouvé par le client CAS)
   phpCAS::forceAuthentication();
   // A partir de là, l'utilisateur est forcément authentifié sur son CAS.
   // Récupérer l'identifiant (login ou numéro interne...) de l'utilisateur authentifié pour le traiter dans l'application
   $id_ENT = phpCAS::getUser();
   // Pour mettre fin au ob_start() ; cas 1/2 où il n'y a pas eu d'erreur.
   ob_end_clean();
 }
 catch(CAS_Exception $e)
 {
   // Pour mettre fin au ob_start() ; cas 2/2 où il y a eu une erreur.
   $contenu_erreur_phpcas = ob_get_clean();
   // @author Daniel Caillibaud <*****@*****.**>
   // on ajoute les traces
   $msg_supplementaire = '<p>Cette erreur peut être due à un certificat expiré ou des données invalides renvoyées par le serveur CAS.</p>'.get_string_traces($e);
   if (is_a($e, 'CAS_AuthenticationException'))
   {
     // $e->getMessage() ne contient rien...
     error_log('SACoche - Erreur phpCAS sur l\'ENT "'.$connexion_nom.'" (serveur '.$cas_serveur_host.') pour l\'établissement n°'.$BASE.'.');
     exit_CAS_Exception( $contenu_erreur_phpcas , $msg_supplementaire );
   }
   else
   {
     // On passe ici visiblement en cas de simple redirection si l'utilisateur n'est pas déjà connecté ; dans ce cas on a :
     // $e->getMessage() = "Terminate Gracefully"
     // get_parent_class($e) = "RuntimeException"
   }
 }
 // Forcer à réinterroger le serveur CAS en cas de nouvel appel à cette page pour être certain que c'est toujours le même utilisateur qui est connecté au CAS.
 unset($_SESSION['phpCAS']);
Ejemplo n.º 2
0
     // Cette méthode permet de forcer CAS à demander au client de s'authentifier s'il ne trouve aucun client d'authentifié.
     // (redirige vers le serveur d'authentification si aucun utilisateur authentifié n'a été trouvé par le client CAS)
     phpCAS::forceAuthentication();
     // A partir de là, l'utilisateur est forcément authentifié sur son CAS.
     // Récupérer l'identifiant (login ou numéro interne...) de l'utilisateur authentifié pour le traiter dans l'application
     $id_ENT = phpCAS::getUser();
     // Pour mettre fin au ob_start() ; cas 1/2 où il n'y a pas eu d'erreur.
     ob_end_clean();
 } catch (CAS_Exception $e) {
     // Pour mettre fin au ob_start() ; cas 2/2 où il y a eu une erreur.
     $contenu_erreur_phpcas = ob_get_clean();
     // @author Daniel Caillibaud <*****@*****.**>
     $msg_log = 'phpCAS::forceAuthentication() sur ' . $cas_serveur_host . ' pour l\'établissement n°' . $BASE . ' qui utilise l\'ENT ' . $connexion_nom . ' a planté ';
     $msg_log .= $e->getMessage();
     // on ajoute les traces dans le log
     $puces_traces = get_string_traces($e);
     if ($puces_traces != '') {
         $msg_log .= ' avec la trace :' . "\n" . $puces_traces;
     }
     trigger_error($msg_log);
     $msg_supplementaire = '<p>Cette erreur probablement due à des données invalides renvoyées par le serveur CAS.</p>' . $puces_traces;
     if (is_a($e, 'CAS_AuthenticationException')) {
         exit_CAS_Exception($contenu_erreur_phpcas, $msg_supplementaire);
     } else {
         // peut-on passer là ?
         trigger_error('phpCAS::forceAuthentication() sur ' . $cas_serveur_host . ' a planté mais ce n\'est pas une CAS_AuthenticationException');
         exit_error('Problème authentification CAS', '<p>L\'authentification CAS sur ' . $cas_serveur_host . ' a échouée.<br />' . $e->getMessage() . '</p>' . $msg_supplementaire);
     }
 }
 // Forcer à réinterroger le serveur CAS en cas de nouvel appel à cette page pour être certain que c'est toujours le même utilisateur qui est connecté au CAS.
 unset($_SESSION['phpCAS']);