[Web Service][SOAP] Problème d'authentification
Bonjour,
débutant en Webservices avec php, je suis amené dans mon projet à développer un client soap en php.
La partie serveur étant une "boite noire", je ne dispose que de l'url du fichier wsdl.
La récupération des types et fonctions possibles du coté serveur se trouvent ici :
(Résultat du code php)
Citation:
<h1>Les fonctions </h1>
GetObjectsResponse GetObjects(GetObjectsRequest $request)
ExecuteChangesResponse ExecuteChanges(ExecuteChangesRequest $request)
ObjectSetType ExecuteSearch(SearchRequestType $request)
GetSearchMetadataResponse GetSearchMetadata(GetSearchMetadataRequest $request)
<h1>Les types </h1>
string GuidType
struct PropertyType { string propertyId; boolean settable; }
struct ModifiablePropertyType { }
.....
La ou je coince c'est que pour appeller ces fonctions je dois m'authentifier à l'application via la classe SoapHeader.
Malgré la création d'une instance de soapHeader, l'appel de la fonction me requiert toujours l'authentification.
Voici la norme requise pour la création de l'header correcte fourni par la documentation coté serveur.
Pour info : je n'utilise pas nusoap mais l'extention de php 5
Voici le code coté client :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <?php
define ("URLWSDL", 'http://monserver/FNCEWS35SOAP/WSDL');
ini_set("soap.wsdl_cache_enabled", false);
try
{
// Log in using the list owner's id and password
$username="test";
$password="test";
//création du webservice
$client = new soapclient(URLWSDL);
//création de l'header
$params = array( "Username" => $username,"Password" => $password);
...
$headerSOAP=new SoapHeader("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd",$params['Username'],$params['Password']) ;
.....
$client->__setSoapHeaders($headerSOAP);
echo $client->__soapcall("getObjects", array($idmType,$guid));
.....
}catch(Exception $e)
{
print $e;
} |
Le résultat de l'appel de la fonction me retourne exeption soaph : SoapFault exception: [SOAP-ENV:Server] The user is not authenticated.
De plus, pourriez vous me dire pourquoi j'ai une représentation de mon code source PHP le tout en commentaire visible sur le navigateur lors de la création de l'header c'est à dire à cette ligne : $headerSOAP=new SoapHeader("....",$params['Username'],$params['Password']) ;
Merci d'avance pour votre aide.
Au cas où, il faut fournir le wsdl , je peux le poster