<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><category>pcsoft.fr.windev</category><copyright>Copyright 2026, PC SOFT</copyright><lastBuildDate>11 Feb 2020 13:22:00 Z</lastBuildDate><pubDate>14 Apr 2016 17:37:41 Z</pubDate><description>Bonjour à tous.&#13;
Je cherche à consommer un webservice développé en java par l'intermédiaire de mon application windev.&#13;
Ce webservice est sécurisé par l'intermédiaire d'un password digest, ce qui, je l'ai bien compris, n'est pas pris en charge par les fonction SOAP standard (import de wsdl dans windev).&#13;
Pour info: https://www.oasis-open.org/committees/download.php/13392/wss-v1.1-spec-pr-UsernameTokenProfile-01.htm&#13;
C'est bien dommage qu'un standard tel que celui-ci ne soit pas intégré, mais c'est un autre sujet.&#13;
&#13;
Je passe donc par un SOAPExecuteXML, mais avant, je me dois de calculer le contenu de la balise wsse:Password (de type passworddigest) en fonction d'une clef connue (mon password), de l'heure (wsse:Created), et d'une valeur générée (wsse:Nonce)...&#13;
&#13;
Dans le lien ci dessus, la règle de calcule est détaillée : Password_Digest = Base64 ( SHA-1 ( nonce + created + password ) )&#13;
&#13;
J'ai tout bêtement pensé à ça : [code:wl]&#13;
sPasswordDigest est une chaine = Crypte(HashChaîne(HA_SHA_160 , sNonce + sCreated + sPassword), "", compresseAucun + crypteAucun, encodeBASE64)&#13;
[/code]&#13;
&#13;
Mais visiblement, c'est un peu plus compliqué...&#13;
J'ai une fonction Java, qui marche, mais que je n'ai pas réussi à reproduire (passage par des "tableau dynamique d'entier sans signe sur 1 octet, etc...)&#13;
&#13;
[code:xml]&#13;
	public static String getPasswordDigest(String nonce, String created, String password) {&#13;
		if (nonce == null) {&#13;
			return null;&#13;
		}&#13;
		if (created == null) {&#13;
			return null;&#13;
		}&#13;
		if (password == null) {&#13;
			return null;&#13;
		}&#13;
		&#13;
		byte[] nonceBytes = Base64.getDecoder().decode(nonce);&#13;
		&#13;
		byte[] createdBytes = null;&#13;
		try {&#13;
			createdBytes = created.getBytes(codingUTF8);&#13;
		} catch (UnsupportedEncodingException uee) {&#13;
			return null;&#13;
		}&#13;
		&#13;
		byte[] passwordBytes = null;&#13;
		try {&#13;
			passwordBytes = password.getBytes(codingUTF8);&#13;
		} catch (UnsupportedEncodingException uee) {&#13;
			return null;&#13;
		}&#13;
		&#13;
		byte[] concatenatedBytes = new byte[nonceBytes.length + createdBytes.length + passwordBytes.length];&#13;
		&#13;
		int offset = 0;&#13;
		System.arraycopy(nonceBytes, 0, concatenatedBytes, offset, nonceBytes.length);&#13;
		offset += nonceBytes.length;&#13;
		System.arraycopy(createdBytes, 0, concatenatedBytes, offset, createdBytes.length);&#13;
		offset += createdBytes.length;&#13;
		System.arraycopy(passwordBytes, 0, concatenatedBytes, offset, passwordBytes.length);&#13;
		System.out.println("concatenatedBytes = " + concatenatedBytes.toString());&#13;
		&#13;
		MessageDigest messageDigest = null;&#13;
		try {&#13;
			// messageDigest = MessageDigest.getInstance(algorithmSHA);&#13;
			messageDigest = MessageDigest.getInstance(algorithmSHA1);&#13;
		} catch (NoSuchAlgorithmException nsae) {&#13;
			return null;&#13;
		}&#13;
		messageDigest.update(concatenatedBytes);&#13;
&#13;
		String passwordDigest = Base64.getEncoder().encodeToString(messageDigest.digest());&#13;
&#13;
		return passwordDigest;&#13;
	}&#13;
[/code]&#13;
&#13;
&#13;
Donc si qq'un à une idée....&#13;
Merci beaucoup d'avance.</description><ttl>30</ttl><generator>WEBDEV</generator><language>fr_FR</language><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest/read.awp</link><title>SOAP et passworddigest</title><managingEditor>moderateur@pcsoft.fr (El moderador)</managingEditor><webMaster>webmaster@pcsoft.fr (El webmaster)</webMaster><item><author>nexusmusic00</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest-236870/read.awp</comments><pubDate>11 Feb 2020 13:22:00 Z</pubDate><description>Salut Benoit,&#13;
&#13;
Quel code tu utilises pour generer le UsernameToken et le Nonce?&#13;
&#13;
Merci</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest-236870/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest-236870/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest/read.awp">SOAP et passworddigest</source><title>Re: SOAP et passworddigest</title></item><item><author>benoit.vincent</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest-194541/read.awp</comments><pubDate>2 May 2016 14:35:49 Z</pubDate><description>Bonjour Phig.&#13;
Je ne suis pas arrivé à qq chose de concluant avec un SOAPAjouteEntete...&#13;
J'ai donc un model xml que je complète…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest-194541/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest-194541/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest/read.awp">SOAP et passworddigest</source><title>Re: SOAP et passworddigest</title></item><item><author>phig</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest-194538/read.awp</comments><pubDate>2 May 2016 13:51:52 Z</pubDate><description>salut, benoit.&#13;
comment fais tu pour passer ton wss-secutity à ton webservice? un soapajouteentete ou bien juste une manip de ch…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest-194538/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest-194538/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest/read.awp">SOAP et passworddigest</source><title>Re: SOAP et passworddigest</title></item><item><author>benoit.vincent</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest-194054/read.awp</comments><pubDate>15 Apr 2016 14:16:33 Z</pubDate><description>Je me répond à moi même:&#13;
- contrairement à ce que j'ai inscrit dans mon premier post, j'utilisais le H_HMAC_SHA_160 au lieu de …</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest-194054/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest-194054/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/194032-soap-passworddigest/read.awp">SOAP et passworddigest</source><title>Re: SOAP et passworddigest</title></item></channel></rss>
