A classe MyCallback() a seguir cria informações sobre autenticação do usuário (domínio, nome de login e senha do usuário) e retorna ao provedor.
// Classe de retorno de chamada, necessária para criar um provedor. private static class MyCallback implements Callback { // Obter um objeto Autenticação do WVCM. // Esta implementação do retorno de chamada da autenticação // retorna o nome de usuário e a senha especificados. // O Provedor chama o getAuthentication para autenticar o usuário atual. public Authentication getAuthentication(final String realm, int retryCount) { if (retryCount>0) throw UnsupportedOperationException("Credenciais inválidas"); return new Authentication() { public String loginName() { return "<o_domínio>\\<o_nome_de_usuário>"; } public String password() { return "<a_senha>"; } }; } }
Cada instância do Provedor recebe um objeto Provider.Callback que é utilizado para obter credenciais para qualquer repositório que o cliente acessa por meio dessa instância do Provedor.
O argumento realm é uma cadeia que identifica o contexto para o qual a autenticação está sendo solicitada (por exemplo, uma URL de servidor ou nome de repositório). O formato da cadeia varia de um subprovedor para outro e tende a ser exibido como um mnemônico para o usuário.
O retryCount especifica o número de vezes de tentativas de autenticação do repositório.
Neste exemplo, os argumentos realm e retryCount não são utilizados. No entanto, os aplicativos clientes devem limitar as tentativas de retryCount a um número pequeno, porque não há limite de novas tentativas de autenticação e um provedor tentará repetidamente obter a autenticação após uma falha, a menos que retryCount esteja configurado ou que o método getAuthentication lance uma exceção.
Em um aplicativo cliente, o retorno de chamada de autenticação pode abrir uma janela de login para coletar o nome e a senha de login de usuário. O argumento realm pode ser apresentado em uma janela para mostrar em qual repositório de produto o usuário efetuou login (por exemplo, uma URL de servidor ou um banco de dados do usuário). Esta opção poderá ser útil se os usuários tiverem diferentes nomes de usuário e senhas para diferentes repositórios do produto.
O Retorno de Chamada é chamado para cada região diferente em que o cliente faz pedidos enquanto está utilizando o Provedor. Consulte as informações de Javadoc para a classe StpProvider para obter detalhes sobre os requisitos no Retorno de Chamada transmitido a um Provedor do ClearQuest CM API.