Je souhaite créer un en-tête WSS pour l'authentification sur des services Web sécurisés.Créer un en-tête WS-Security à l'aide de SimpleXML?
je peux le faire en utilisant un vilain:
$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>';
Je suis maintenant en train de le faire plus propre, en utilisant SimpleXML.
Mais si j'essaie de faire simple:
$xml = new SimpleXMLElement('<wsse:Security/>', 0, false, 'wsse');
Je reçois:
avertissement: SimpleXMLElement :: __ construct() [SimpleXMLElement .-- construction]: erreur d'espace de noms: Espace de noms préfixe wsse sur la sécurité n'est pas défini dans
Je pense que quelque chose me manque avec la façon de créer des xml avec espaces de noms, pouvez-vous me donner quelques indices?