ProviderFactory.Callback es una interfaz a través de la cual el proveedor de la API de Rational CM solicita credenciales de usuario del cliente cuando es necesario acceder al repositorio del producto. También existe una subinterfaz, StpProvider.StpCallback la cual está especializada en ClearQuest y ClearCase.
La clase MyCallback() siguiente crea información de autenticación de usuario (dominio, nombre de inicio de sesión y contraseña) y la devuelve al proveedor.
// Callback class, needed to create a provider. private static class MyCallback implements Callback { // Get a WVCM Authentication object. // This implementation of the authentication // callback returns the specified username and password. // The Provider calls getAuthentication to authenticate the current user. 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>"; } }; } }
A cada instancia de proveedor se proporciona un objeto Provider.Callback que se utiliza para obtener credenciales de cualquier repositorio al que el cliente accede a través de la instancia de proveedor.
El argumento realm es una serie que identifica el contexto para el que se solicita autenticación (por ejemplo, un URL de servidor o un nombre de repositorio). El formato de la serie varía de subproveedor a subproveedor y está pensado para mostrarse al usuario como mnemónico.
retryCount especifica el número de veces que se puede intentar autenticar en el repositorio.
En este ejemplo, no se utilizan los argumentos realm y retryCount. Sin embargo, las aplicaciones cliente deben limitar los intentos de retryCount a un número reducido, ya que no hay ningún límite predefinido sobre intentos de autenticación y un proveedor intentará de forma repetida obtener autenticación después de una anomalía a menos que se establezca el método retryCount o el método getAuthentication lance una excepción.
En una aplicación cliente, la devolución de llamada de autenticación puede abrir un recuadro de diálogo de inicio de sesión para obtener el nombre de usuario y la contraseña del usuario. El argumento realm puede presentarse al usuario en un recuadro de diálogo, para mostrar el repositorio de producto en el que el usuario realiza el inicio de sesión (por ejemplo, un URL de servidor o una base de datos de usuario). Esta opción puede ser útil si los usuarios tienen diferentes nombres de usuario y contraseñas para diferentes repositorios de productos.
La devolución de llamada se realiza para cada dominio al que el cliente realiza una solicitud mientras utiliza el proveedor. Consulte la información del Javadoc referente a la clase StpProvider para obtener detalles sobre los requisitos de la devolución de llamada al proveedor de la API de Rational CM.