Bonjour,

Je viens à vous car j'ai quelques difficultés à comprendre de quelle manière mettre en place un client Java qui consomme un web service avec authentification username / password.

Pour ce qui est de créer un client Java qui consomme mon WS, pas de soucis. Le problème survient lorsque coté serveur j'implémente une authentification username / password.

Voici ce que j'ai ajouté coté serveur dans le fichier de configuration 'erver-config.wsdd' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 <!-- Security Handler-->
   <ns1:handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
    <ns1:parameter name="passwordCallbackClass" value="org.xxx.xxx.xxx.security.ServicePasswordCallback" />
	<ns1:parameter name="action" value="UsernameToken"/>
   </ns1:handler>
  </ns1:requestFlow>
'org.xxx.xxx.xxx.security.ServicePasswordCallback' étant ma classe de vérification du username / password qui fait appel à un autre service pour l'authentification.

Coté client, voilà la manière dont je fais appel à mon service (sans username/password pour le moment) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
BocaServiceService service = new BocaServiceServiceLocator();
BocaServiceSoapBindingStub myPort = (BocaServiceSoapBindingStub)service.getBocaService();
Publication myPub = new Publication(140355);
ActionInfo myResponse = myPort.updatePublication(myPub);
J'ai essayé plusieurs choses la semaine dernière comme fournir un user/mdp dont :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
myPort.setUsername("xxxx");
myPort.setPassword("xxxx");
Mais ça ne fonctionne pas.

Mon question est donc : que faire pour envoyer un profil 'user/mdp' lors de l'envoi d'une requête ?

Je vous remercie d'avance pour votre aide.

ps: l'erreur obtenu est la même à chaque fois (erreur logique) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
WSDoAllReceiver: Request does not contain required Security header