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?