} // Display startup error then exit if ($err) { require SUMO_PATH . '/inc/inc.startup_errors.php'; } // Get some server informations $SUMO['server'] = sumo_get_server_info(); switch ($_GET['cmd']) { // Get node status case 'GET_NODE_STATUS': $status = sumo_verify_node() ? "I00013X" : "W00049X"; echo $status; break; case 'CREATE_SID': if (SUMO_SESSIONS_REPLICA) { $session = sumo_get_session_info($_GET['id']); setcookie('SUMO', $session['session_id'], null, '/'); } break; // Get datasource status // Get datasource status case 'GET_DS_STATUS': $id = intval($_GET['id']); if ($id < 2) { exit("E09000X"); } $available_ds = sumo_get_available_datasources(); switch ($_GET['type']) { case 'LDAP': $ds = 'ldap'; break;
/** * SUMO CORE * * @version 0.4.2 * @link http://sumoam.sourceforge.net SUMO Access Manager * @author Alberto Basso <*****@*****.**> * @copyright Copyright © 2003-2009, Alberto Basso * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @package SUMO * @category Core */ // Load functions datasource library require SUMO_PATH . "/libs/lib.datasource.ldaps.php"; // Verify if LDAP extension is loaded if (!in_array('ldap', get_loaded_extensions())) { sumo_dl('ldap'); } // ...if not give an error if (!in_array('ldap', get_loaded_extensions())) { $sumo_access = 'LDAPMODULEERROR'; } elseif ($_SESSION['loggedin'] == false && !$sumo_verify_datasource_connection($SUMO['user']['datasource_id'])) { $sumo_access = 'LDAPCONNECTIONFAILED'; } elseif (!$sumo_verify_datasource_authentication($SUMO['user']['datasource_id'])) { $sumo_access = 'PASSWORDERROR'; } else { // Verify if user already logged in and if // sessions is expired $sumo_session = sumo_get_session_info(); $sumo_access = empty($sumo_session['username']) ? 'LOGIN' : 'CONTINUE'; }
/** * Migrate session_id Cookie to all actives nodes * * @param boolean $login */ function sumo_create_session_id($login = true) { global $SUMO; // Get id of the user session $session = sumo_get_session_info(); $query = "SELECT host,port,name,protocol,sumo_path FROM " . SUMO_TABLE_NODES . " \n\t\t WHERE active = 1\n\t\t\tAND host <> 'localhost'\n\t\t\tAND host <> '" . $SUMO['server']['ip'] . "' \n\t\t\tAND host <> '" . $SUMO['server']['name'] . "'"; $rs = $SUMO['DB']->CacheExecute(30, $query); while ($tab = $rs->FetchRow()) { $url = $tab['protocol'] . '://' . $tab['host'] . ':' . $tab['port'] . $tab['sumo_path'] . '/services.php?module=network&service=network&cmd=CREATE_SID' . '&id=' . $session['id']; // Modify hostname for HTTPS $hostname = $tab['protocol'] == 'https' ? 'ssl://' . $tab['host'] : $tab['host']; // try connection before redirect $connect = @fsockopen($hostname, $tab['port'], $errno, $errstr, 4); if ($connect) { if ($login || !sumo_verify_is_console($SUMO['page']['path'])) { echo "<iframe src='{$url}' style='visibility:hidden;width:0px;height:0px;display:none'></iframe>"; } else { echo "<script>parent.CSID.location.href='{$url}';</script>"; } } else { sumo_write_log('E00123X', array($tab['host'], "RC " . $errno . ": " . $errstr), '0,1', 1, 'system', FALSE); } } }