Remote User - DNS A-Record leer

Dieses Thema im Forum "Installation und Konfiguration" wurde erstellt von TDS, 14. Apr. 2014.

  1. TDS

    TDS New Member

    Hallo,
    wenn ich mit einem Remote User die Funktion dns_a_get() aufrufe erhalte ich nichts zurück. Die Authentifizierung ist korrekt und eine Sessions-ID wird zurück gegeben.
    Wenn ich mir die SQL-Abfrage zur DNS-Abfrage anschaue kommt folgendes:
    => sys_userid ist leer
    => sys_groupid ist leer

    Wo kann der Fehler liegen? Nutze die Vorlage aus den Beispielen. ID in dns_rr ist vorhanden. Muss ich auf eine SVN-Version zurückgreifen?
     
  2. Till

    Till Administrator

    sys_userid und sys_groupid eines datensatzes dürfen niemals leer sein. Der Fehler liegt hier also im datensatz in der ispconfig DB und nicht in der remote abfrage via remoting. wie hast Du den datensatz denn in der ispconfig db angelegt.
     
  3. TDS

    TDS New Member

    In der Datenbank ist alles korrekt eingetragen. Nur bei dem SOAP-Zugriff scheint er irgendwie die beiden Parameter nicht zu erhalten oder zu übergeben.
     
  4. Till

    Till Administrator

    Übergibst Du denn die richtige client_id?
     
  5. TDS

    TDS New Member

    PHP:
    <?php
    /*
    $soap_location = 'http://localhost:8080/ispconfig3/interface/web/remote/index.php';
    $soap_uri = 'http://localhost:8080/ispconfig3/interface/web/remote/';
    */
    $soap_location 'https://localhost:8080/remote/index.php';
    $soap_uri 'https://localhost:8080/remote/';

    $client = new SoapClient(null, array('location' => $soap_location'uri' => $soap_uri'trace' => 1'exceptions' => 1));

    try {
            if(
    $session_id $client->login($_REQUEST['username'],$_REQUEST['password'])) {
                    echo 
    'Logged successfull. Session ID:'.$session_id.'<br />';
            }

            
    //* Parameters
            
    $id $_REQUEST['id'];

            
    //* Get the dns record
            
    $dns_record $client->dns_a_get($session_id$id);

            
    //* Change active to inactive
            
    $dns_record['data'] = $_REQUEST['ip'];
            
    $affected_rows $client->dns_a_update($session_idnull$id$dns_record);

            echo 
    'Number of records that have been changed in the database: '.$affected_rows.'<br>';

            if(
    $client->logout($session_id)) {
                    echo 
    'Logged out.<br />';
            }
    } catch (
    SoapFault $e) {
            echo 
    $client->__getLastResponse(); die('SOAP Error: '.$e->getMessage());
    }
    ?>
    Parameter:
    • username
    • password
    • id => dns_rr id
    PHP:
    $client->dns_a_update($session_idnull$id$dns_record);
    2. Parameter ist null, auch wenn ich die z.B. 11 (Benutzer dem der DNS-Eintrag gehört und welcher in der Tabelle steht) übergebe erhalte ich den Fehler.
     
  6. Till

    Till Administrator

    Verwechsele bitte nicht die client_id mit der sys_user oder sys_group ID. Die client_ID steht nirgends in der dns_rr tabelle, sie ist nur in der tabelle "client" zu finden.
     
  7. TDS

    TDS New Member

    sys_user oder sys_group sollten 11 sein. Jedenfalls wurde das von ISPConfig bei Erstellung so angelegt.
    Die ID der Zeile ist 858.
    Benutzer und Passwort ist der vom Remote User. Er hat alle DNS-Rechte.

    Somit:
    $_REQUEST['username'] = remote1
    $_REQUEST['password'] = password1
    $_REQUEST['id'] = 858

    Hardcoded $client_id = 11 oder als NULL belassen bringt keine Änderung.
     
  8. Till

    Till Administrator

    Du machst genau den Fehler den ich oben beschrieben habe, Du übergibst eine sys_userid als client ID, da muss der fehler ja auftreten da eine client_id nicht die sys_userid und auch nicht die sys_groupid ist. Schau mal in die Tabelle client, dort findest Du die clients und auch deren client_id und das ist die ID, die Du als client_id übergibst.
     
  9. TDS

    TDS New Member

    Ich glaub hier liegt ein Missverständnis vor.

    1. Schritt:
    Login und Session ID erhalten: OK
    2. Schritt:
    DNS Record erhalten via Session ID und übergebener ID (858): Leerer Wert
    Die ID kann ich beliebig ändern (z.B. 1 für allerersten Eintrag). Keine Änderung.

    Weitere Schritte werden nicht ausgeführt da ich hier bereits mit print_r und exit abbreche. Demzufolge kein dns_a_update.
    Wenn ich $dns_record['data'] = 'xxx.xxx.xxx.xxx' zuweise dann hat das Array nur diesen einen Wert. Sollte aber durch dns_a_get() mehr haben.

    Für das Update wäre die client_id = 10 laut Tabelle client, doch bis dahin komme ich nicht weil ich ja den DNS Record nicht korrekt erhalte.
     

Diese Seite empfehlen