La classe MyCallback() suivante crée des informations d'authentification de l'utilisateur (domaine, nom de connexion de l'utilisateur et mot de passe) et retourne au fournisseur.
// Classe de rappel automatique, nécessaire pour créer un fournisseur. classe statique privée MyCallback implémente le Callback { // Obtenez un objet d'authentification WVCM. // Cette implémentation du rappel automatique d'authentification // renvoie le nom d'utilisateur et le mot de passe spécifiés. // Le fournisseur appelle getAuthentication pour authentifier l'utilisateur en cours. Authentification publique getAuthentication(final String realm, int retryCount) { if (retryCount>0) lance UnsupportedOperationException("Justificatifs d'identité erronés"); renvoie nouvelle authentification () { public String loginName() { return "<the_domain>\\<the_username>"; } public String password() { return "<the_password>"; } }; } }
Chaque instance du fournisseur reçoit un objet Provider.Callback qui est utilisé pour obtenir des justificatifs d'identité pour tout référentiel auquel le client accède via cette instance du Fournisseur.
L'argument realm est une chaîne qui identifie le contexte pour lequel l'authentification est demandée (par exemple, une URL de serveur ou un nom de référentiel). Le format de la chaîne varie d'un sous-fournisseur à l'autre, et est destiné à s'afficher de manière mnémotechnique pour l'utilisateur.
Le retryCount indique le nombre de tentatives d'authentification auprès du référentiel.
Dans cet exemple, les arguments realm et retryCount ne sont pas utilisés. Cependant, les applications client doivent limiter les tentatives de retryCount à un petit nombre car il n'existe pas de limite de tentatives d'essai d'authentification et un fournisseur essaiera d'obtenir une authentification de manière répétée après un échec, à moins qu'un retryCount ne soit défini ou que la méthode getAuthentication ne génère une exception.
Dans une application client, le rappel d'authentification peut ouvrir une fenêtre de connexion visant à obtenir le nom de connexion et le mot de passe de l'utilisateur. L'argument realm peut être présenté dans une fenêtre, afin de montrer le référentiel produit auquel l'utilisateur se connecte (par exemple, une adresse URL de serveur ou une base de données utilisateur). Cette option peut être utile si les utilisateurs ont différents noms d'utilisateur et mots de passe pour des référentiels produit différents.
Le rappel automatique est effectué pour chaque realm différent auquel le client envoie des requêtes pendant qu'il utilise le fournisseur. Consultez les informations Javadoc sur la classe StpProvider pour obtenir des détails sur le rappel automatique effectué sur un fournisseur d'API CM ClearQuest.