Example #1
0
     // S'il y a eu une erreur et que l'on revient, afficher
     // l'erreur. Cela annule la redirection de header(), mais
     // l'utilisateur pourra quand même cliquer manuellement sur un
     // lien.
     $error = lassospkit_error();
     if (!empty($error)) {
         echo "SSO error:<br /><pre>{$error}</pre><br />";
     }
     // Pas encore authentifié - on se connecte:
     $return_url = get_request_uri();
     lassospkit_redirect_federate($return_url);
     exit;
 }
 // A ce stade, l'utilisateur est authentifié par Lasso
 $password = '';
 $login = lassospkit_userid();
 // vide si pas encore fédéré
 if (empty($login)) {
     // Construit un identifiant unique
     $sql = "SELECT login FROM " . TABLE_PREFIX . "_utilisateurs WHERE login LIKE 'lasso_%'";
     $res = grr_sql_query($sql);
     $existing_users = array();
     for ($i = 0; $row = grr_sql_row($res, $i); $i++) {
         $existing_users[] = $row[0];
     }
     $max = 0;
     foreach ($existing_users as $user) {
         if (preg_match('/lasso_(\\d+)/', $user, $matches)) {
             if ($matches[1] > $max) {
                 $max = $matches[1];
             }
Example #2
0
 function handleSlo($ret)
 {
     //error_log("handleSlo");
     $r = $this->relayState;
     if ($this->currentHttpMethod == LASSO_HTTP_METHOD_GET && $this->currentHttpMethod == LASSO_HTTP_METHOD_POST) {
         $this->headerHtml("SLO endpoint", $r);
         if ($ret) {
             echo "Demande de slo échoué: " . strError($ret) . "({$ret})";
         } else {
             echo "Demande de slo réussie";
         }
         echo "Go to <a href='{$r}'>{$r}</a>";
         $this->footerHtml();
         lassospkit_clean();
         grr_closeSession($_GET['auto']);
     } else {
         # Specialized
         $id = lassospkit_userid();
         if (isset($id)) {
             //error_log("Trying to destroy session $id");
             chdir("..");
             global $dbsys;
             require_once "./include/config.inc.php";
             include "./include/connect.inc.php";
             require_once "./include/{$dbsys}.inc.php";
             require_once "./include/functions.inc.php";
             require_once "./include/session.inc.php";
             // See admin_view_connexions.php:67
             $sql = "SELECT session_id FROM " . TABLE_PREFIX . "_log\n                      WHERE login = '******'\n                      AND end > NOW()";
             $res = grr_sql_query($sql);
             if ($res) {
                 for ($i = 0; $row = grr_sql_row($res, $i); $i++) {
                     $php_session_id = $row[0];
                     //error_log("Erasing GRR session $php_session_id");
                     session_id($php_session_id);
                     // delete spkitlasso session if necessary
                     @session_start();
                     lassospkit_set_nameid(@$_SESSION['lasso_nameid']);
                     lassospkit_clean();
                     // delete GRR session
                     $auto = 0;
                     grr_closeSession($auto);
                     // Done by grr_closeSession:
                     //session_start();
                     //session_destroy();
                 }
             }
         }
     }
     if ($ret) {
         error_log("Demande de slo échoué: {$ret}");
     } else {
         //error_log("Demande de slo réussie: $ret");
     }
     return $ret;
 }
Example #3
0
echo begin_page(getSettingValue("company").get_vocab("deux_points").get_vocab("mrbs"),"no_session");

if (lassospkit_userid() == NULL)
{
  if (getUserName()!='')
    {
      lassospkit_set_userid(getUserName());
      echo get_vocab('lasso_federated');
    }
  else
    {
      echo get_vocab('lasso_please_connect');
    }
  echo "<br />";
  echo "<a href='{$_SERVER['HTTP_REFERER']}'>".get_vocab('back').'</a>';
}
else
{
  echo get_vocab('lasso_already_federated');
  echo "<ul>";
  echo "<li>" . get_vocab('lasso_local_user') . ": <code>" . lassospkit_userid() . "</code></li>";
  $idps = lassospkit_nameid();
  foreach($idps as $idp => $nameid)
    {
      echo "<li>";
      echo get_vocab('lasso_nameid_for_idp') . " <code>$idp</code> : <code>$nameid</code>";
      echo "</li>";
    }
  echo "</ul>";
}
Example #4
0
      // lien.
      $error = lassospkit_error();
      if (!empty($error))
	{
	  echo "SSO error:<br /><pre>$error</pre><br />";
	}

      // Pas encore authentifié - on se connecte:
      $return_url = get_request_uri();
      lassospkit_redirect_federate($return_url);
      exit();
    }

  // A ce stade, l'utilisateur est authentifié par Lasso
  $password = '';
  $login = lassospkit_userid(); // vide si pas encore fédéré

  if (empty($login))
    {
      // Construit un identifiant unique
      $sql = "SELECT login FROM ".TABLE_PREFIX."_utilisateurs
			WHERE login LIKE 'lasso_%'";
      $res = grr_sql_query($sql);
      $existing_users = array();
      for ($i = 0; ($row = grr_sql_row($res, $i)); $i++)
	$existing_users[] = $row[0];
      $max = 0;
      foreach ($existing_users as $user)
	{
	  if (preg_match('/lasso_(\d+)/', $user, $matches))
	    if ($matches[1] > $max)