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:L'authentification se passe comme il faut en dehors de la trace:
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);En traçant au niveau réseau ce qu'il se passe, j'ai remarqué qu'il se passe la séquence suivante:org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme
INFO: Digest authentication scheme selected
- 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!
Partager