Exemple #1
0
}
// 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 &copy; 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';
}
Exemple #3
0
/**
 * 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);
        }
    }
}