|
A Little Help from the Callback
Listing 2. By creating an array of callbacks and passing them to the callback handler's handle method, we can gather the necessary data. Then the login method does the login by calling a helper. public boolean login() throws LoginException
{
TextOutputCallback tcb = new
TextOutputCallback(TextOutputCallback.INFORMATION,
"Enter details for JDBC login");
NameCallback ncb = new NameCallback("Name: ");
PasswordCallback pcb = new PasswordCallback(
"Password", false);
ConfirmationCallback ccb = new
ConfirmationCallback(
ConfirmationCallback.INFORMATION,
ConfirmationCallback.OK_CANCEL_OPTION,
ConfirmationCallback.OK);
Callback[] handlers = new Callback[] { tcb, ncb,
pcb, ccb, };
try
{
callbackHandler.handle(handlers);
if (ccb.getSelectedIndex() ==
ConfirmationCallback.OK)
{
loginSucceeded = doLocalLogin(ncb.getName(),
new String(pcb.getPassword()));
}
}
catch (Exception e)
{
throw new FailedLoginException(e.getMessage());
}
return loginSucceeded;
}
|