[Axis2] Authentification scheme
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:
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:
Citation:
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:
- envoie de la requête avec le header Authentification=BASIC
- Réponse 401 du serveur: Il faut s'authentifier mon bon monsieur!
- 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!