Callback erstellen

Ein ProviderFactory.Callback ist eine Schnittstelle, über die der ClearQuest CM API-Provider Benutzerberechtigungen vom Client anfordert, wenn diese für den Zugriff auf ein Produktrepository erforderlich sind. Darüber hinaus gibt es eine spezielle Subproviderschnittstelle, StpProvider.StpCallback, für ClearQuest.

Die folgende Klasse MyCallback() erstellt Benutzerauthentifizierungsdaten (Domäne, Anmeldename des Benutzers und Kennwort) und kehrt zum Provider zurück.

// Für die Erstellung eines Providers erforderliche Callback-Klasse 
private static class MyCallback implements Callback 
{
     // Abrufen eines WVCM-Authentifizierungsobjekts.
     // Diese Implementierung des Authentifizierungs-Callback
     // gibt den angegebenen Benutzernamen und das angegebene Kennwort zurück.

     
     // Der Provider ruft getAuthentication auf, um den aktuellen Benutzer zu authentifizieren.
     public Authentication getAuthentication(final String realm, int retryCount)
          {
          if (retryCount>0) 
              throw UnsupportedOperationException("Bad credentials");
          return new Authentication() 
               {
               public String loginName()  { return "<the_domain>\\<the_username>"; }
               public String password() { return "<the_password>"; }
               };
          }
}

Jeder Providerinstanz wird ein Provider.Callback-Objekt zugeordnet, mit dem die Berechtigungsnachweise für jedes Repository abgerufen werden, auf das der Client über diese Providerinstanz zugreift.

Das Argument realm ist eine Zeichenfolge (z. B. ein Server-URL oder ein Repository-Name), die den Kontext bezeichnet, für den die Authentifizierung angefordert wird. Das Format der Zeichenfolge ist vom jeweiligen Subprovider abhängig und wird dem Benutzer als mnemonisches Zeichen angezeigt.

Der retryCount gibt die Anzahl der Versuche für die Authentifizierung gegenüber dem Repository an.

In diesem Beispiel wurden die Argumente realm und retryCount nicht verwendet. Clientanwendungen sollten die Anzahl der retryCount-Versuche jedoch gering halten, da es keinen Grenzwert für die Wiederholung der Authentifizierungsversuche gibt und ein Provider nach einem Fehler wiederholt versuchen wird, die Authentifizierung aufzuführen, es sei denn, für retryCount ist ein Wert angegeben oder die Methode getAuthentication löst eine Ausnahme aus.

In einer Clientanwendung kann der Authentifizierungs-Callback ein Anmeldefenster öffnen, um den Anmeldenamen und das Kennwort des Benutzers zu erfassen. Das Argument realm kann in einem Fenster angezeigt werden, damit der Benutzer sieht, bei welchem Produktrepository (z. B. eine Server-URL oder eine Benutzerdatenbank) er sich anmeldet. Diese Option kann hilfreich sein, wenn Benutzer für verschiedene Produktrepositorys unterschiedliche Benutzernamen und Kennwörter verwenden.

Der Callback wird für jeden Realm aufgerufen, an den der Client während der Verwendung des Providers Anforderungen sendet. Die Javadoc-Informationen zur Klasse StpProvider enthalten ausführliche Informationen zu den Anforderungen an einen Callback, der an einen ClearQuest CM API-Provider übergeben wird.


Feedback