ProviderFactory.Callback은 제품 저장소에 액세스하기 위해 Rational® CM API 제공자가 클라이언트로부터 사용자 신임을 요청하는 인터페이스입니다. ClearQuest® 및 ClearCase®에만 있는 StpProvider.StpCallback 서브인터페이스도 있습니다.
다음 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 인수를 사용자에게 표시할 수 있습니다. 이 옵션은 제품 저장소마다 사용자 이름과 암호가 다른 경우 유용합니다.
제공자를 사용하는 동안 클라이언트가 요청하는 각 상이한 범주에 대해 콜백을 호출합니다. Rational CM API 제공자에게 전달되는 콜백 요구사항에 대한 자세한 정보는 StpProvider 클래스에 대한 Javadoc 정보를 참조하십시오.