Bonjour,

Je réalise une authentification DIGEST sur un webservice à partir de classes générées pour le client par axis2.

J'ai suivi les tutoriels de base et j'applique les infos d'authentification comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
      HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
      String userName = "tontontoto";
      String password = "passpass";
 
      List<String> schemesList = new ArrayList<String>(1);
      schemesList.add(AuthPolicy.DIGEST);
      auth.setAuthSchemes(schemesList);
 
      auth.setUsername(userName);
      auth.setPassword(password);
      options.setProperty(HTTPConstants.AUTHENTICATE, auth);
      options.setProperty(AuthPolicy.AUTH_SCHEME_PRIORITY, schemesList);
L'authentification se passe comme il faut en dehors de la trace:
org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme
INFO: Digest authentication scheme selected
En traçant au niveau réseau ce qu'il se passe, j'ai remarqué qu'il se passe la séquence suivante:
  1. envoie de la requête avec le header Authentification=BASIC
  2. Réponse 401 du serveur: Il faut s'authentifier mon bon monsieur!
  3. renvoie de la requête avec cette fois le header Authentification=DIGEST avec les infos qui vont bien...


Le soucis est que cette séquence est réalisée pour toute les requêtes, même les plus grosses.

Ma question est donc: Y a-t-il un moyen de dire au client d'essayer directement de s'authentifier en DIGEST et de ne pas faire une séance de ping ping authentificatoire à chaque requête.

Merci!