2013-06-14 4 views
3

J'utilise un ESB-Proxy avec l'authentification https.WSO2 ESB Obtenir le nom d'authentification

Si j'envoie un message à ce proxy avec boucle i obtenir ce journal:

[2013-06-14 13:56:05,138] INFO - LogMediator To: /services/Username, From: 127.0.0.1, Direction: request, Envelope: <?x 
ml version='1.0' encoding='utf-8'?> 
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> 
<soapenv:Header> 
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="true"> 
<wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp17"><wsu:Created>2013-06-14T11:56:05.134Z</wsu:Created> 
<wsu:Expires>2013-06-14T12:01:05.134Z</wsu:Expires> 
</wsu:Timestamp> 
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken16"> 
<wsse:Username>admin</wsse:Username> 
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">admin</wsse:Password> 
</wsse:UsernameToken> 
</wsse:Security> 
</soapenv:Header> 
<soapenv:Body/> 
</soapenv:Envelope> 

Maintenant, j'aime enregistrer le nom d'utilisateur avec le médiateur de la propriété. Le problème est que je ne sais pas comment l'expression doit ressembler. Pour l'instant j'ai l'expression suivante ne fonctionne pas:

<property xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" name="user" expression="//soapenv:Envelope/soapenv:Header/wsse:Security/wsse:UsernameToken/wsse:Username" scope="transport" type="STRING"/> 

Quelle est l'expression correcte pour obtenir le nom d'utilisateur?

Merci.

Répondre

2

Vous pouvez utiliser l'expression avec $ header pour récupérer le nom d'utilisateur comme suit.

<property xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" name="user" expression="$header/wsse:Security/wsse:UsernameToken/wsse:Username"/> 
+0

Merci beaucoup! Ça marche :) – muetze