java.lang.Object
org.acegisecurity.providers.jaas.JaasAuthenticationProvider.InternalCallbackHandler
- All Implemented Interfaces:
- javax.security.auth.callback.CallbackHandler
- Enclosing class:
- JaasAuthenticationProvider
- private class JaasAuthenticationProvider.InternalCallbackHandler
- extends java.lang.Object
- implements javax.security.auth.callback.CallbackHandler
Wrapper class for JAASAuthenticationCallbackHandlers
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
authentication
private org.acegisecurity.Authentication authentication
JaasAuthenticationProvider.InternalCallbackHandler
public JaasAuthenticationProvider.InternalCallbackHandler(org.acegisecurity.Authentication authentication)
handle
public void handle(javax.security.auth.callback.Callback[] callbacks)
throws java.io.IOException,
javax.security.auth.callback.UnsupportedCallbackException
- 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