2 Stimmen

Erstellen eines WS-Security-Headers mit SimpleXML?

Ich möchte einen WSS-Header erstellen, um mich bei gesicherten Webdiensten zu authentifizieren.

Ich kann es mit einer hässlichen :

    $auth = '
     <wsse:Security SOAP-ENV:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
        <wsu:Timestamp wsu:Id="Timestamp-28" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <wsu:Created>' . $timestamp . '</wsu:Created>
            <wsu:Expires>' . $timestampExpires . '</wsu:Expires>
        </wsu:Timestamp>
        <wsse:UsernameToken wsu:Id="UsernameToken-27" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <wsse:Username>' . $user . '</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">' . $passdigest . '</wsse:Password>
            <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">' . $encodedNonce . '</wsse:Nonce>
            <wsu:Created>' . $timestamp . '</wsu:Created>
        </wsse:UsernameToken>
     </wsse:Security>';

Ich versuche jetzt, es sauberer zu machen, indem ich SimpleXML verwende.

Aber wenn ich versuche, eine einfache :

    $xml = new SimpleXMLElement('<wsse:Security/>', 0, false, 'wsse');

Ich bekomme :

Warnung: SimpleXMLElement::__construct() [simplexmlelement.--construct]: Namespace-Fehler : Namespace-Präfix wsse auf Security ist nicht definiert in

Ich glaube, ich übersehe etwas bei der Erstellung von namengebundenen XML-Dateien, können Sie mir einige Tipps geben?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X