Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1326 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Authentification à un webservice via header SOAP (nusoap)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Authentification à un webservice via header SOAP (nusoap)

n°1800323
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-10-2008 à 10:40:54  profilanswer
 

Coucou [:dawa]
 
Premier topic dans la cat PHP, ça se fête [:kadreg]
 
Bon alors mon problème est tout con [:god]
 
J'ai un webservice en C#, mais j'ai pas envie que tout le monde y accède (faut pas déconner non plus [:dawao]). Donc, j'ai eu la bonne idée d'implémenter une authentification par les headers SOAP. Du coup, tout client qui veut s'y connecter est obligé de m'envoyer ses infos dans les headers SOAP, et c'est moi qui valide ou pas son entrée [:kbchris]
 
Passons maintenant au gusse qui veut accéder à mon joli webservice : il utilise un client PHP avec l'extension nusoap. Or, moi je sais parfaitement insérer des infos dans le header SOAP en C#, mais je n'ai aucune idée de comment on le fait en PHP avec nusoap, donc je m'en remets aux experts de tout poil qui hantent cette cat d'élite [:prosterne]
 
Donc ma question toute conne : comment je fais (ou plutot comment mon collègue fera, j'anticipe) pour insérer des infos dans le header SOAP en PHP5 avec l'extension nusoap ?
 
Merci les loulous [:dawa]


Message édité par Harkonnen le 15-10-2008 à 12:34:48

---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 15-10-2008 à 10:40:54  profilanswer
 

n°1800329
flo850
moi je
Posté le 15-10-2008 à 10:45:24  profilanswer
 

RTFM noob
http://www.beanizer.org/site/index [...] Proxy.html

Spoiler :

[:cupra]

 

sinon, j'avais utilisé ca la derniere fois que j'ai eu a me battre avec soap

Code :
  1. $client = new SoapClient(    "http://192.6.1.10:8080/rh_test/services/Boite_A_Tache?wsdl" ,
  2.                             array(    'trace'=>1,
  3.                                     'exceptions'=>0,
  4.                                     'login' => $login,
  5.                                     'password' => $pass
  6.                                 )
  7.                         );


Message édité par flo850 le 15-10-2008 à 10:49:49

---------------

n°1800343
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-10-2008 à 11:03:35  profilanswer
 

oué mais ça, ça transmet bien toutes les infos dans le header SOAP ? t'es sur ?
dans mon webservice C#, j'ai une classe CredentialHeader :

Code :
  1. public class CredentialHeader : SoapHeader
  2.    {
  3.        string _userName;
  4.        string _password;
  5.  
  6.        public string Password
  7.        {
  8.            get { return _password; }
  9.            set { _password = value; }
  10.        }
  11.  
  12.        public string UserName
  13.        {
  14.            get { return _userName; }
  15.            set { _userName = value; }
  16.        }
  17.        
  18.        public CredentialHeader()
  19.            : base()
  20.        {
  21.        }
  22.  
  23.        public CredentialHeader(string user, string pass)
  24.        {
  25.            this._userName = user;
  26.            this._password = pass;
  27.        }
  28.  
  29.    }
 

puis, dans les méthodes exposées de mon webservice, j'ai rajouté ceci en métadonnée (ligne 4):

Code :
  1. public CredentialHeader Authentication;
  2.  
  3. [WebMethod(CacheDuration = 30)]
  4. [SoapHeader("Authentication" )]
  5. public string GetTypeOfAttachedFile(string xml)
  6. {...}
 

du coup, le gars qui veut accéder à la méthode GetTypeOfAttachedFile() est obligé de me fournir les infos suivantes dans le fichier XML correspondant à sa requête SOAP :

Code :
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <soap:Header>
  3.  <CredentialHeader xmlns="http://www.ilist5.com/">
  4.    <UserName>tugludu</UserName>
  5.    <Password>phpisl33tz</Password>
  6.  </CredentialHeader>
  7. </soap:Header>


et dans ton code, je vois pas comment lui spécifier la balise CredentialHeader (correspondant à l'objet utilisé pour s'authentifier dans mon code C#)

 

'scuse ma n00bité hein [:god]


Message édité par Harkonnen le 15-10-2008 à 11:04:21

---------------
J'ai un string dans l'array (Paris Hilton)
n°1800346
skeye
Posté le 15-10-2008 à 11:18:13  profilanswer
 

cf la doc qu'il a mise en lien, c'est fait pour des type d'identification "standard", pas pour ton truc bidouillé.[:petrus75]


Message édité par skeye le 15-10-2008 à 11:18:47

---------------
Can't buy what I want because it's free -
n°1800348
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-10-2008 à 11:25:47  profilanswer
 

les headers SOAP, une bidouille ?  [:mlc]
c'est la méthode la plus propre et la plus secure pour s'identifier auprès d'un webservice :o
dégage de ce topic, et profites en pour lire ceci, n00b : http://www.codeproject.com/KB/cpp/ [...] vices.aspx
 
dans cette page, il y a le passage suivant :

Citation :

Basically all the client needs to do is create an authentication object, fill out the username and password, then pass them to the web service object. The web service code is also pretty simple, the .NET framework lets you create custom SOAP headers by deriving from the SoapHeader class, so we wanted to add a username and password:


 
et moi je veux juste savoir comment créer cet objet en PHP, rien de plus [:dawao]
(ou comment obtenir l'équivalent, le but étant de m'envoyer la requête SOAP avec les infos que j'ai écrit plus haut, peu importe le moyen)
 
tu es indigne de cette cat, file donc t'instruire et laisse répondre l'élite [:kiki]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1800349
skeye
Posté le 15-10-2008 à 11:27:04  profilanswer
 

Au passage, pourquoi nusoap alors qu'il y a des trucs fournis avec php?
Parce-que si je lis bien la doc là http://fr3.php.net/manual/fr/funct [...] apcall.php il y a moyen de faire un appel en spécifiant des headers spécifiques...[:petrus75]

Message cité 1 fois
Message édité par skeye le 15-10-2008 à 11:27:22

---------------
Can't buy what I want because it's free -
n°1800350
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-10-2008 à 11:30:16  profilanswer
 

skeye a écrit :

Au passage, pourquoi nusoap alors qu'il y a des trucs fournis avec php?


parce qu'on a commencé le projet sur une version de PHP qui n'intégrait pas SOAP (merci OVH [:kiki]], on a donc du utiliser nusoap. et on a pas trop le temps de tout réécrire :o
 
bon sinon, y'a pas des intervenants de qualité sur cette cat d'habitude ? parce que là c'est la foire à neuneu hein [:mlc]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1800352
flo850
moi je
Posté le 15-10-2008 à 11:31:11  profilanswer
 

nan , mais sérieusement, pourquoi ne pas utiliser un truc standard ( au sens de standard dans tous les langages ) ?  genre une simple basic authitification ?

 

sinon,avec ton truc bidouillé,  ça va etre un poil plus désagréable à faire

 

http://techblog.bronto.com/brontot [...] psoap.html

Citation :

Header support in PHP-SOAP is much better than NuSOAP.  In NuSOAP, you had to manually generate the XML.

Message cité 1 fois
Message édité par flo850 le 15-10-2008 à 11:32:50

---------------

n°1800363
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-10-2008 à 11:39:28  profilanswer
 

flo850 a écrit :

nan , mais sérieusement, pourquoi ne pas utiliser un truc standard ( au sens de standard dans tous les langages ) ?  genre une simple basic authitification ?  


parce qu'on veut un truc le plus secure possible :o
 

flo850 a écrit :


sinon,avec ton truc bidouillé,  ça va etre un poil plus désagréable à faire  
 
http://techblog.bronto.com/brontot [...] psoap.html

Citation :

Header support in PHP-SOAP is much better than NuSOAP.  In NuSOAP, you had to manually generate the XML.



ah ben voilà [:god]
ça fera la bite à mon collègue, il est un peu trop habitué au PHP "pur", ça lui fera pas de mal de tater un peu ce genre de truc :D
et puis bon, c'est pas la lune non plus hein, un truc du style :

Code :
  1. $auth_header = "<CredentialHeader xmlns=\"http://www.ilist5.com\"><username>toto</username><password>tugludu</password></CredentialHeader>";
  2. $Binding->setHeaders($auth_header);


pas de quoi casser 3 pattes à un canard :o
 
merci bien gros [:god]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1800365
flo850
moi je
Posté le 15-10-2008 à 11:41:34  profilanswer
 

pense a ajouter l'echappement de certains caractères lors de la génération du xml, sinon, ca va pas etre très secure  
 
 


---------------

mood
Publicité
Posté le 15-10-2008 à 11:41:34  profilanswer
 

n°1800370
skeye
Posté le 15-10-2008 à 11:44:18  profilanswer
 

Harkonnen a écrit :

et on a pas trop le temps de tout réécrire :o


 
S'il s'agit juste de changer de client soap, dans une appli bien codée ça devrait poser aucun problème.:o


---------------
Can't buy what I want because it's free -
n°1800378
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-10-2008 à 11:49:24  profilanswer
 

flo850 a écrit :

pense a ajouter l'echappement de certains caractères lors de la génération du xml, sinon, ca va pas etre très secure  
 
 


c'est pas moi qui vais m'en occuper mais je transmettrais :jap:
 

skeye a écrit :


 
S'il s'agit juste de changer de client soap, dans une appli bien codée ça devrait poser aucun problème.:o


on le fera, c'est clair, mais pour l'instant il faut parer au plus pressé, Moktar nous a collé une deadline intenable [:petrus75]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1800382
flo850
moi je
Posté le 15-10-2008 à 11:52:45  profilanswer
 

pète lui les jambes [:proy]


---------------

n°1800395
skeye
Posté le 15-10-2008 à 12:06:47  profilanswer
 

Harkonnen a écrit :


on le fera, c'est clair, mais pour l'instant il faut parer au plus pressé, Moktar nous a collé une deadline intenable [:petrus75]

 

Bah t'es sûr qu'une génération manuelle du xml sera pas aussi/plus longue à faire?:o


Message édité par skeye le 15-10-2008 à 12:06:54

---------------
Can't buy what I want because it's free -
n°1800396
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-10-2008 à 12:08:34  profilanswer
 

ben t'as vu ce qu'il y a à générer ? mon collègue à la limite n'aura juste qu'à faire un copier/coller de ce que j'ai écrit plus haut :spamafote:


---------------
J'ai un string dans l'array (Paris Hilton)
n°1800405
skeye
Posté le 15-10-2008 à 12:13:47  profilanswer
 

Harkonnen a écrit :

ben t'as vu ce qu'il y a à générer ? mon collègue à la limite n'aura juste qu'à faire un copier/coller de ce que j'ai écrit plus haut :spamafote:


oui enfin la classe soapclient de nusoap et celle fournie sont quasiment identiques de ce que j'en vois...la boulot doit pas être monstrueux.[:petrus75]


---------------
Can't buy what I want because it's free -
n°1800409
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-10-2008 à 12:16:02  profilanswer
 

euh ouais, mais y'a l'interface chaise-clavier aussi [:petrus75]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1800425
skeye
Posté le 15-10-2008 à 12:38:09  profilanswer
 

Harkonnen a écrit :

euh ouais, mais y'a l'interface chaise-clavier aussi [:petrus75]


On sent que tu fais confiance aux collègues, c'est bien.[:petrus75]


---------------
Can't buy what I want because it's free -

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Authentification à un webservice via header SOAP (nusoap)

 

Sujets relatifs
WebService Linkedinpb header location
Authentification avec mot de passe en JAVAtrouve pas de fichier alors que le fichier est dedans??
[PHP] header sans effet[RESOLU]SOAP & WSDL (java6)
Header qui plante[PHP] Authentification Active Directory + LDAP
Personnaliser la boite d'authentification 
Plus de sujets relatifs à : Authentification à un webservice via header SOAP (nusoap)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR