다음 MyCallback() 클래스는 사용자 인증 정보(도메인, 사용자 로그인 이름 및 비밀번호)를 작성하여 제공자에게 리턴합니다.
// 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>"; } }; } }
각 제공자 인스턴스는 제공자 인스턴스를 통해 클라이언트가 액세스하는 저장소의 신임을 얻는 데 사용되는 하나의 Provider.Callback 오브젝트에 제공됩니다.
realm 인수는 인증을 요청 중인 컨텍스트를 식별하는 문자열입니다(예: 서버 URL 또는 저장소 이름). 문자열 형식은 하위 제공자마다 다르며 사용자를 니모닉으로 표시하는 데 사용됩니다.
retryCount는 저장소에 대한 인증 시도 횟수를 지정합니다.
이 예제에서는 realm 및 retryCount 인수를 사용하지 않습니다. 그러나 인증 재시도 횟수에 대한 제한이 사전 설정되어 있지 않고 retryCount가 설정되지 않았거나 getAuthentication 메소드에 예외가 발생하지 않은 경우 제공자가 실패 후 반복해서 인증을 얻기 위해 시도할 것이므로 클라이언트 애플리케이션에서 retryCount 시도를 작은 수로 제한해야 합니다.
클라이언트 애플리케이션에서 인증 콜백은 로그인 창을 열어서 사용자의 로그인 이름 및 비밀번호를 수집할 수 있습니다. 사용자가 로그인 중인 제품 저장소(예: 서버 URL 또는 사용자 데이터베이스)를 표시하는 창에서 realm 인수를 표시할 수 있습니다. 이 옵션은 제품 저장소마다 사용자 이름과 암호가 다른 경우 유용합니다.
제공자를 사용하는 동안 클라이언트가 요청하는 각 상이한 범주에 대해 콜백을 호출합니다. ClearQuest CM API 제공자에게 전달되는 콜백 요구사항에 대한 자세한 정보는 StpProvider 클래스에 대한 Javadoc 정보를 참조하십시오.