TR064, falsche Aktion oder fehlerhafte Authentifikation?

hansvonhugo

Neuer User
Mitglied seit
17 Okt 2007
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Hallo,

ich versuche micropython via TR064 das GästeWLAN einzuschalten. Dies will mir jedoch nicht gelingen. Ich erhalte beim entsprechenden Aufruf die Fehlermeldung 401 "Invalid Action".
Ich bin mir nicht sicher, ob das tatsächlich an einer fehlerhaften Aktion liegen sollte (hier habe ich trotz intensiver Suche keinen Fehler gefunden) oder eher daran, dass ich schon bei der Authentifikation etwas falsch mache.
Im Folgenden der für den Aufruf verwendeten (vom Python-Programm erzeugten) Request-Aufrufdaten

XML:
WLAN-Verbindung ok
tr064Port= 49443
####### call TR064 for Nonce/auth and create a secret of it #######
url = https://fritz.box:49443/upnp/control/hosts
HTTP-header[1] = SoapAction:urn:dslforum-org:service:Hosts:1#X_AVM-DE_GetHostListPath
HTTP-header[2] = Content-Type:text/xml; charset = "utf-8"
Http-body = <?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
        <h:InitChallenge xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">
            <UserID>fbsoap</UserID>
        </h:InitChallenge>
    </s:Header>
    <s:Body>
        <u:X_AVM-DE_GetHostListPath xmlns:u="urn:dslforum-org:service:Hosts:1"/>
    </s:Body>
</s:Envelope>

Response = <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <s:Header>
        <h:Challenge xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">
            <Status>Unauthenticated</Status>
            <Nonce>FB19091F9CF5BFDF</Nonce>
            <Realm>F!Box SOAP-Auth</Realm>
        </h:Challenge>
    </s:Header>
    <s:Body>
        <s:Fault>
            <faultcode>s:Client</faultcode>
            <faultstring>UPnPError</faultstring>
            <detail>
                <UPnPError xmlns="urn:dslforum-org:control-1-0">
                    <errorCode>503</errorCode>
                    <errorDescription>auth. failed</errorDescription>
                </UPnPError>
            </detail>
        </s:Fault>
    </s:Body>
</s:Envelope>
sopaUser= fbsoap
soapNonce= FB19091F9CF5BFDF
soapRealm= F!Box SOAP-Auth
soapPsk= o2COoSoMnTY53Bq6mhE7
soapSecret= e792d3e37f9435f9bdd5ac0113c86360

####### call TR064 to enable guestWlan #######
url = https://fritz.box:49443/upnp/control/wlanconfig3
HTTP-header[1] = SoapAction:urn:dslforum-org:service:WLANConfiguration:3
HTTP-header[2] = Content-Type:text/xml; charset = "utf-8"
Http-body = <?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
        <h:ClientAuth xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">
            <Nonce>FB19091F9CF5BFDF</Nonce>
            <Auth>bd7f39776811e1fc0c011e80e1e9a809</Auth>
            <UserID>fbsoap</UserID>
            <Realm>F!Box SOAP-Auth</Realm>
        </h:ClientAuth>
    </s:Header>
    <s:Body>
        <u:SetEnable xmlns:u=urn:dslforum-org:service:WLANConfiguration:3>
           <NewEnable>"1"</NewEnable>
       </u:SetEnable>
   </s:Body>
</s:Envelope>

Response = <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <s:Body>
        <s:Fault>
            <faultcode>s:Client</faultcode>
            <faultstring>UPnPError</faultstring>
            <detail>
                <UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
                    <errorCode>401</errorCode>
                    <errorDescription>Invalid Action</errorDescription>
                </UPnPError>
            </detail>
        </s:Fault>
    </s:Body>
</s:Envelope>


Bisherige Erkenntnisse:

- einen Fehler im Aufruf zum Setzen des Gast-Wlans (der zweite Aufruf) kann ich nicht finden - wenn dort trotzdem etwas falsch sein sollte, freue ich mich über jeden Hinweis.
- wenn ich den Wert für auth auf einen zufällig gewählten Wert (401 "Invalid Action") setze, erhalte ich die gleiche Fehlermeldung - eine fehlerhafte Authentifizierung würde also auch den Fehlercode erklären. Es bliebe dann die Frage, wo die Authentifizierung falsch ist.
- ich verwende zu Testzwecken bash-skripte die mittels curl erfolgreich Aufrufe (mit gleichem User/PW) durchführe. Wenn ich die dort ermittelten Werte für Nonce/auth/passwort zu testzwecken in das Python-Programm eintrage, so erhalte ich die gleichen Werte d.h. den gleichen auth-Wert wie im bash-Skript. Ich gehe daher davon aus, dass die Generierung des auth-Wertes grundsätzlich richtig ist.
- Ich bin mir nicht sicher, ob die Generierung des Secrets richtig erfolgt ich verwende dort eine andere Action (<u:X_AVM-DE_GetHostListPath xmlns:u="urn:dslforum-org:service:Hosts:1"/>) als ich später verwende. In den Beschreibungen die ich gelesen habe, sollte das secret für alle Arten von Aufrufen taugen. Darüber hinaus ist es mir nicht gelungen, die Action ohne hervorrufen eines Fehlers durch "SetEnable" zu ersetzen - im folgenden Beispiel kommt der gleiche Fehler - Wenn im Header und im Body "WLANConfiguration:3#SetEnable" bzw <u:SetEnable xmlns:u=urn:dslforum-org:service:WLANConfiguration:3"/> setze erhalte ich den gleichen Fehler allerdings schon beim ersten Request. ein ERgänzen des Body mit " <NewEnable>True</NewEnable><u:SetEnable>" nach dem ersten "u:SetEnable"-Tag brachte auch keine Besserung.

XML:
####### call TR064 for Nonce/auth and create a secret of it #######
url = https://fritz.box:49443/upnp/control/hosts
HTTP-header[1] = SoapAction:urn:dslforum-org:service:WLANConfiguration:3#SetEnable
HTTP-header[2] = Content-Type:text/xml; charset = "utf-8"
Http-body = <?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
        <h:InitChallenge xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">
            <UserID>fbsoap</UserID>
        </h:InitChallenge>
    </s:Header>
    <s:Body>
        <u:SetEnable xmlns:u=urn:dslforum-org:service:WLANConfiguration:3"/> 
    </s:Body>
</s:Envelope>

Mache Ich mit der Authentification etwas falsch, oder liegt der Fehler ganz wo anders? Wenn irgendjemand eine Idee dazu hat, wäre es großartig!


P.S.: die verwendete WLAN-Nummer (3) sollte richtig sein, da ich neben dem GastWlan nuch ein 2,5 und 5 GHz auf der Fritzbox habe. Ein testweiser Aufruf mit z.b. WLAN-Nummer 2 bringt die gleiche Fehlermeldung
 
Da fehlen Anführungsstriche... Bzw. Das Argument sollte ohne verschickt werden. Deine Authentifizierungsverfahren habe ich nicht geprüft.

Deine Action:
XML:
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
        <h:ClientAuth xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">
            <Nonce>FB19091F9CF5BFDF</Nonce>
            <Auth>bd7f39776811e1fc0c011e80e1e9a809</Auth>
            <UserID>fbsoap</UserID>
            <Realm>F!Box SOAP-Auth</Realm>
        </h:ClientAuth>
    </s:Header>
    <s:Body>
        <u:SetEnable xmlns:u=urn:dslforum-org:service:WLANConfiguration:3>
           <NewEnable>"1"</NewEnable>
       </u:SetEnable>
   </s:Body>
</s:Envelope>

So würde ich es wegschicken:
XML:
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
        <h:ClientAuth xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">
            <Nonce>FB19091F9CF5BFDF</Nonce>
            <Auth>bd7f39776811e1fc0c011e80e1e9a809</Auth>
            <UserID>fbsoap</UserID>
            <Realm>F!Box SOAP-Auth</Realm>
        </h:ClientAuth>
    </s:Header>
    <s:Body>
        <u:SetEnable xmlns:u="urn:dslforum-org:service:WLANConfiguration:3">
           <NewEnable>1</NewEnable>
       </u:SetEnable>
   </s:Body>
</s:Envelope>
 
Vielen Dank für Deine Antwort. Leider bringt das einfügen/Weglassen von Anführungsstrichen keine Änderung. D.h. bei Ausführung des folgenden Codes bleibt die Fehlermeldung 401 "invalid action"

XML:
####### call TR064 for Nonce/auth and create a secret of it #######
url = https://fritz.box:49443/upnp/control/hosts
HTTP-header[1] = SoapAction:urn:dslforum-org:service:WLANConfiguration:3#SetEnable
HTTP-header[2] = Content-Type:text/xml; charset = "utf-8"
Http-body =
<?xml version="1.0" encoding="utf-8"?>
    <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
        <s:Header>
            <h:InitChallenge xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">
                <UserID>fbsoap</UserID>
            </h:InitChallenge>
        </s:Header>
        <s:Body>
            <u:SetEnable xmlns:u="urn:dslforum-org:service:WLANConfiguration:3"/>
                <NewEnable>1</NewEnable>
            <u:SetEnable>
        </s:Body>
</s:Envelope>

Hast Du irgendeine Idee, woran das liegen könnte?
 
Sorry, aber jetz ist der XML-Syntax nicht korrekt. Du schließt das SetEnable-Element in der gleichen Zeile.
Der Slash am Ende ist falsch <u:SetEnable xmlns:u="urn:dslforum-org:service:WLANConfiguration:3"/>. Zwei Zeilen weiter fehlt der Slash. <u:SetEnable>.

Diese XML konnte ich im Nodepad++ erfolgreich testen.

XML:
<?xml version="1.0" encoding="utf-8"?>
    <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
        <s:Header>
            <h:InitChallenge xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">
                <UserID>fbsoap</UserID>
            </h:InitChallenge>
        </s:Header>
        <s:Body>
            <u:SetEnable xmlns:u="urn:dslforum-org:service:WLANConfiguration:3">
                <NewEnable>1</NewEnable>
            </u:SetEnable>
        </s:Body>
</s:Envelope>
 
Richtig - das war syntaktisch falsch.
Ich hab's mal angepasst - das ergibt aber immer noch die gleiche Fehlermeldung :-((
Noch irgendeine Idee, woran das liegen könnte?
Ich habe gerade keine Idee, wie ich hier weiter analysieren könnte, bzw rauszubekommen, was der Fb hier nicht gefällt - hast Du ggf. noch eine Idee, wo man da weiter suchen/analysieren könnte?
Sind dier vieleicht Beispiele aus dem Bereich bekannt (Aufruf von WLANConfiguration mitels Client-Authentification)?

XML:
url = https://fritz.box:49443/upnp/control/hosts
HTTP-header[1] = SoapAction:urn:dslforum-org:service:WLANConfiguration:3#SetEnable
HTTP-header[2] = Content-Type:text/xml; charset = "utf-8"
Http-body =
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
        <h:InitChallenge xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">
            <UserID>fbsoap</UserID>
        </h:InitChallenge>
    </s:Header>
    <s:Body>
        <u:SetEnable xmlns:u="urn:dslforum-org:service:WLANConfiguration:3">
            <NewEnable>1</NewEnable>
        </u:SetEnable>
    </s:Body>
</s:Envelope>
 
Wie kommst Du denn nun wieder auf die Idee, der Control-Point für WLANConfiguration:3 könnte /upnp/control/hosts sein?

Vielleicht wirfst Du ja mal einen Blick in die Schnittstellendefinitionen Deiner eigenen FRITZ!Box (unter http://fritz.box:49000/tr64desc.xml) und verwendest dann die Angaben, die Dir dort präsentiert werden?



Wenn ich richtig mitgezählt habe, ist das jetzt der dritte Thread von Dir zu diesem Thema und jedesmal, wenn man denkt, jetzt wäre der Knoten endlich geplatzt, geht das - und zwar nach längeren Pausen (13.10., 28.10., jetzt 08.11.) - wieder von vorne los. Warum bleibst Du nicht einfach mal in einem EINZIGEN Thread zu diesem Thema und zwar so lange, bis Deine Probleme TATSÄCHLICH gelöst sind?

Die Lernkurve erscheint mir hier auch nicht wirklich steil und selbst wenn ich durchaus verstehen kann, falls sich jemand nicht so intensiv mit einem Thema befassen kann, wie er es (hoffentlich) gerne würde, ist es irgendwann dann auch mal ermüdend, wenn es immer wieder von vorne beginnt. Denn das erfordert eben auch beim Leser immer wieder den Einstieg in das Thema und - wie bei allem Code, den man nur zum Lesen vorgesetzt bekommt - sehr, sehr GRÜNDLICHES Lesen. Daran verliert man irgendwann die Lust (jedenfalls geht das mir so), wenn man den Eindruck gewinnt, daß es dem Fragesteller selbst nicht so richtig ernst ist mit seinem Anliegen und daß es weniger um systematische Fehlersuche, als vielmehr um fröhliches Probieren geht.
 
Lieber PeterPawn - vielen Dank für Deine Antwort.

Du hast natürlich recht der Control-Point ist falsch. Letztendlich ein versehendliches Überbleibsel aus verschiedenen Änderungen. Ich hatte es jedoch auch schon damit versucht, mit einer Nonce-Generierung komplett für WLANConfiguration erfolglos probiert. Das ist aus meiner Beschreibung beschreibung vieleicht nicht ganz hervorgegangen. Im Ergebnis bekomme ich auch wieder eine Invalid action wie ganz oben beschrieben zum zweiten Aufruf.

XML:
WLAN-Verbindung ok
tr064Port= 49443
####### call TR064 for Nonce/auth and create a secret of it #######
url = https://fritz.box:49443/upnp/control/wlanconfig3
HTTP-header[1] = SoapAction:urn:dslforum-org:service:WLANConfiguration:3#SetEnable
HTTP-header[2] = Content-Type:text/xml; charset = "utf-8"
Http-body = <?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
        <h:InitChallenge xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">
            <UserID>fbsoap</UserID>
        </h:InitChallenge>
    </s:Header>
    <s:Body>
        <u:SetEnable xmlns:u="urn:dslforum-org:service:WLANConfiguration:3">
            <NewEnable>1</NewEnable>
        </u:SetEnable>
    </s:Body>
</s:Envelope>

Response = <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <s:Header>
        <h:Challenge xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">
            <Status>Unauthenticated</Status>
            <Nonce>1AA5A90319EE5167</Nonce>
            <Realm>F!Box SOAP-Auth</Realm>
        </h:Challenge>
    </s:Header>
    <s:Body>
        <s:Fault>
            <faultcode>s:Client</faultcode>
            <faultstring>UPnPError</faultstring>
            <detail>
                <UPnPError xmlns="urn:dslforum-org:control-1-0">
                    <errorCode>503</errorCode>
                    <errorDescription>auth. failed</errorDescription>
                </UPnPError>
            </detail>
        </s:Fault>
    </s:Body>
</s:Envelope>
sopaUser= fbsoap
soapNonce= 1AA5A90319EE5167
soapRealm= F!Box SOAP-Auth
soapPsk= o2COoSoMnTY53Bq6mhE7
soapSecret= e792d3e37f9435f9bdd5ac0113c86360

####### call TR064 to enable guestWlan #######
url = https://fritz.box:49443/upnp/control/wlanconfig3
HTTP-header[1] = SoapAction:urn:dslforum-org:service:WLANConfiguration:3
HTTP-header[2] = Content-Type:text/xml; charset = "utf-8"
Http-body = <?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
        <h:ClientAuth xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">
            <Nonce>1AA5A90319EE5167</Nonce>
            <Auth>898ad830f7fdd3ebaac7f34e84203228</Auth>
            <UserID>fbsoap</UserID>
            <Realm>F!Box SOAP-Auth</Realm>
        </h:ClientAuth>
    </s:Header>
    <s:Body>
        <u:SetEnable xmlns:u="urn:dslforum-org:service:WLANConfiguration:3">
            <NewEnable>"1"</NewEnable>
        </u:SetEnable>
    </s:Body>
</s:Envelope>

Response = <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <s:Body>
        <s:Fault>
            <faultcode>s:Client</faultcode>
            <faultstring>UPnPError</faultstring>
            <detail>
                <UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
                    <errorCode>401</errorCode>
                    <errorDescription>Invalid Action</errorDescription>
                </UPnPError>
            </detail>
        </s:Fault>
    </s:Body>
</s:Envelope>



Vielen Dank für Deine nachsichtigen Hinweise zu meiner "nicht sehr steilen Lernkurve" ;-)
Hinsichtlich der Verteilung auf mehrer Threads hatte ich tatsächlich darüber nachgedacht die Threads fortzuschreiben, mich jedoch dagegen entschieden, weil mir schien, dass die Probleme im Kern nicht viel miteinander zu tun haben (der erste Thread ist ein ganz anderes Script, das verwendete MAC-Adressen ausgibt und das zweite Problem beruhte auf dem Verständnis der verwendeten Python komponente) und mehr Länge als Verständnis für das jeweilige Problem schaffen. Wenn das besser passt - und so verstehe ich Dich - kann ich natürlich auch Threads fortschreiben.
Ich komme wegen Arbeit und Familie tatsächlich nicht so regelmäßig dazu, mich mit dem Thema zu beschäftigen, wie ich es mir wünschen würde, aber der Abstand der Einträge täuscht: Auch dazwischen versuche ich weiter zukommen. Die von Die angemahnte systematische Analyse setzt naturbedingt nun einmal Systemwissen voraus, was man erst hat, wenn man sich länger mit Themen beschäftigt. Ich glaube, Du unterschätzt an dieser Stelle das implizite und explizite Wissen dass Du Dir selber in Jahren angeeignet hast. Viele Dinge sind Dir klar und Du weist intuitiv wo man bei bestimmten Fehlerbildern hinschauen muss. Auf der anderen Seite ist die Thematik hinsichtlich eines systematischen Herangehens nicht sehr dankbar. (btw. Dinge zu lernen indem man probiert ist meistens nicht fröhlich sondern frustrierend). Sowohl die Fehlermeldungen, die man erhält, wie auch die offizielle Dokumentation von AVM (alle mir verfügbaren Dokumente mehrfach gelesen, wenn ich auch nicht ausschliessen kann, dass ich etwas übersehen habe) und auch das, was man durch Suche im Internet findet ist eher kleinteilig und vermittelt kein schlüssiges Gesamtbild der Zusammenhänge. - wenn es da etwas gibt, was es sich sonst noch lohnt zu lesen lohnt, freue ich mich über Hinweise - ich mag gute Dokumentationen!
 
Mir ist nur noch eine Sache aufgefallen. Danach wird es schwierig...

Meinem WebClient füge ich diesen SoapAction hinzu:
Code:
"urn:dslforum-org:service:X_AVM-DE_OnTel:1#GetCallList"

Du machst sowas:
Code:
urn:dslforum-org:service:WLANConfiguration:3

Ich hab das bewusst in Anführungsstriche gesetzt. So wie es in AVM TR-064 First Steps erwähnt ist.
 
Wie soll man da noch durchblicken, wenn innerhalb desselben Beitrags für denselben Funktionsaufruf zwei unterschiedliche SOAPAction-Header verwendet werden?

Du zeigst ja (hier im Thread) den ursprünglichen Code offenbar absichtlich nicht ... wenn ich raten sollte, würde ich darauf wetten, daß das eine Datei mit mehreren, hintereinander kopierten Aufrufen ist und Du für jeden neuen Versuch innerhalb dieser Datei an mehreren Stellen änderst - anders lassen sich die Inkonsistenzen innerhalb der Beiträge m.E. nicht erklären.

Wie wäre es denn, wenn Du einfach mal von vorne beginnst, an jeder (wirklich JEDER) Stelle, wo etwas variabel ist, auch mit einer Variablen arbeitest und diese dann im weiteren Verlauf nur noch referenzierst? Wenn man solche "Definitionen" dann noch am Beginn des Ganzen unterbringt, hat man nur noch eine einzige Stelle, wo man herumdoktern muß und behält auch selbst besser die Übersicht.

Dabei darf man durchaus auch mal zwei Variablen kombinieren, um einen endgültigen Wert zu erhalten ... hier wären z.B. der Interface-Name (urn:dslforum-org:service:WLANConfiguration:3) und die eigentlich aufzurufenden Funktion (SetEnable) gute Kandidaten für solches Zusammenfügen, denn die tauchen ja auch immer wieder getrennt auf (mal als Tag-Name, mal als Namespace) und werden dann doch für den SOAPAction-Header beide in Kombination benötigt.

Auch bei der Formatierung gibt es immer wieder "Unklarheiten" in Deinen Beispielen ... wie schon von @Kruemelino angemerkt, kann man nur anhand Deiner gezeigten Ausgabe nicht wirklich erkennen, wie der übertragene SOAPAction-Header tatsächlich(!) aussieht - immerhin tritt hier das Trennzeichen zwischen dem Header-Namen und dessen Wert (ein Doppelpunkt nach der HTTP-Spezifikation) noch mehrfach innerhalb des eigentlichen Wertes auf, ohne entsprechend maskiert zu sein und solange man den Parser von AVM nicht genau kennt bzw. das sieht, was tatsächlich an den UPnP-Server übermittelt wurde, muß man sich auch die Frage stellen, wie das vom Server zerlegt wird. Nimmt der tatsächlich alles nach dem ersten Trennzeichen bis zum nächsten Zeilenende als den gesamten Wert an?

Der HTTP-Standard ist da (nach meiner Lesart) ziemlich eindeutig: https://datatracker.ietf.org/doc/html/rfc2616#section-4.2 - alles das, was innerhalb des field-content kein Token (ein einzelner Wert) und kein Trennzeichen (separator) ist, ist als quoted-string (https://datatracker.ietf.org/doc/html/rfc2616#section-2.2) anzugeben. Das macht es dann auch wieder eindeutig, was die Bedeutung der weiteren Doppelpunkte innerhalb des field-content anbelangt ...

Die Tatsache, daß der SOAPAction-Header nicht bemängelt wird, solange der Request noch nicht authentifiziert ist, würde ich auch nicht als Beweis GEGEN die Annahme ansehen, daß der Header das Problem ist ... denn solange der Request nicht zulässig ist, macht es ja auch wenig Sinn, ihn auf weitere Ungereimtheiten zu überprüfen - ich fände es also durchaus normal, wenn sich hier weitere Fehler erst dann bemerkbar machen (sofern sie nicht generell den Request betreffen, wie z.B. ungültige XML-Syntax), wenn feststeht, daß der Request an sich zulässig ist (sprich: der Aufrufer berechtigt).
 
@Kuemelino: Danke für den Hinweis - leider bring das auch keine Besserung.

@PeterPawn:
Es werden zwar teilweise Variablen verwendet, aber nicht so durchgängig wie das möglich wäre. Ich werde das umstellen und mich dann (auch mit Code) wieder melden. Leider werde ich allerdings nicht zeitnah dazu kommen - es wird also wieder etwas dauern.
 
der zweite SOAPHeader ist unvollständig !

urn:dslforum-org:service:WLANConfiguration:3

Es fehlt die # und der Name der Action

urn:dslforum-org:service:WLANConfiguration:3#SetEnable

Ich hab es jetzt nicht sofort gesehen. Erst @PeterPawn hat mich darauf aufmerksam gemacht.

Es muss nicht die Lösung sein, aber es ist ein Teil der Ursachenermittlung.
 
Habs gerade ausprobiert - das wars!
Vielen Dank an Euch beide!
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.