common
Class STProjectLoginContext.CBH

java.lang.Object
common.STProjectLoginContext.CBH
- All Implemented Interfaces:
- javax.security.auth.callback.CallbackHandler
- Enclosing class:
- STProjectLoginContext
- private static class STProjectLoginContext.CBH
- extends java.lang.Object
- implements javax.security.auth.callback.CallbackHandler
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
STProjectLoginContext.CBH
private STProjectLoginContext.CBH()
handle
public void handle(javax.security.auth.callback.Callback[] callbacks)
throws javax.security.auth.callback.UnsupportedCallbackException,
java.io.IOException
- Description copied from interface:
javax.security.auth.callback.CallbackHandler
Retrieve or display the information requested in the provided
javax.security.auth.callback.Callbacks.
The handle() method implementation checks the instance(s)
of the javax.security.auth.callback.Callback object(s) passed in to retrieve or display the
requested information. The following example is provided to help
demonstrate what an handle() method implementation might look
like. This example code is for guidance only. Many details, including
proper error handling, are left out for simplicity.
public void handle(Callback[] callbacks)
throws IOException, UnsupportedCallbackException {
for (int i = 0; i < callbacks.length; i++) {
if (callbacks[i] instanceof TextOutputCallback) {
// display the message according to the specified type
TextOutputCallback toc = (TextOutputCallback)callbacks[i];
switch (toc.getMessageType()) {
case TextOutputCallback.INFORMATION:
System.out.println(toc.getMessage());
break;
case TextOutputCallback.ERROR:
System.out.println("ERROR: " + toc.getMessage());
break;
case TextOutputCallback.WARNING:
System.out.println("WARNING: " + toc.getMessage());
break;
default:
throw new IOException("Unsupported message type: "
+ toc.getMessageType());
}
} else if (callbacks[i] instanceof NameCallback) {
// prompt the user for a username
NameCallback nc = (NameCallback)callbacks[i];
// ignore the provided defaultName
System.err.print(nc.getPrompt());
System.err.flush();
nc.setName((new BufferedReader(
new InputStreamReader(System.in))).readLine());
} else if (callbacks[i] instanceof PasswordCallback) {
// prompt the user for sensitive information
PasswordCallback pc = (PasswordCallback)callbacks[i];
System.err.print(pc.getPrompt());
System.err.flush();
pc.setPassword(readPassword(System.in));
} else {
throw new UnsupportedCallbackException(
callbacks[i], "Unrecognized Callback");
}
}
}
// Reads user password from given input stream.
private char[] readPassword(InputStream in) throws IOException {
// insert code to read a user password from the input stream
}
- Specified by:
handle in interface javax.security.auth.callback.CallbackHandler