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' :
	
	| 12
 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) :
	
	| 12
 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 : 
	
	| 12
 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) :
	
	WSDoAllReceiver: Request does not contain required Security header
 
						
					
Partager