UnsupportedCallbackException {
for (int i = 0; i < callbacks.length; i++) {
if (callbacks[i] instanceof LanguageCallback) {
LanguageCallback cb = (LanguageCallback)callbacks[i];
if (DEBUG) {
logger.log(logger.INFO, "JAAS CallbackHander handle LanguageCallback -"+
" returning " + rb.getLocale());
}
cb.setLocale(rb.getLocale());
continue;
}
if (callbacks[i] instanceof NameCallback) {
if (userName == null) {
String emsg = Globals.getBrokerResources().getKString(
BrokerResources.X_JAAS_CALLBACK_HANDLER_NOT_INITIALIZED,
"NameCallback");
logger.log(logger.ERROR, emsg);
throw new UnsupportedCallbackException(callbacks[i], emsg);
}
NameCallback cb = (NameCallback)callbacks[i];
if (DEBUG) {
logger.log(logger.INFO, "JAAS CallbackHander handle NameCallback prompt: "+
((NameCallback)callbacks[i]).getPrompt()+ " - returning " +userName);
}
cb.setName(userName);
continue;
}
if (callbacks[i] instanceof PasswordCallback) {
if (password == null) {
String emsg = Globals.getBrokerResources().getKString(
BrokerResources.X_JAAS_CALLBACK_HANDLER_NOT_INITIALIZED,
"PasswordCallback");
logger.log(logger.ERROR, emsg);
throw new UnsupportedCallbackException(callbacks[i], emsg);
}
PasswordCallback cb = (PasswordCallback)callbacks[i];
if (DEBUG) {
logger.log(logger.INFO,
"JAAS CallbackHander handle PasswordCallback ["+cb.getClass().getName()+"] prompt:"+cb.getPrompt());
}
cb.setPassword(password.toCharArray());
continue;
}
if (callbacks[i] instanceof TextInputCallback) {
if (authProps == null) {
String emsg = Globals.getBrokerResources().getKString(
BrokerResources.X_JAAS_CALLBACK_HANDLER_NOT_INITIALIZED,
"TextInputCallback");
logger.log(logger.ERROR, emsg);
throw new UnsupportedCallbackException(callbacks[i], emsg);
}
TextInputCallback cb = (TextInputCallback)callbacks[i];
String text = null;
if (cb.getPrompt().equals(AccessController.PROP_AUTHENTICATION_TYPE)) {
text = (String)authProps.getProperty(AccessController.PROP_AUTHENTICATION_TYPE);
} else if (cb.getPrompt().equals(AccessController.PROP_ACCESSCONTROL_TYPE)) {
text = (String)authProps.getProperty(AccessController.PROP_ACCESSCONTROL_TYPE);
} else if (cb.getPrompt().equals(AccessController.PROP_CLIENTIP)) {
text = (String)authProps.getProperty(AccessController.PROP_CLIENTIP);
} else if (cb.getPrompt().equals(AccessController.PROP_SERVICE_NAME)) {
text = (String)authProps.getProperty(AccessController.PROP_SERVICE_NAME);
} else if (cb.getPrompt().equals(AccessController.PROP_SERVICE_TYPE)) {
text = (String)authProps.getProperty(AccessController.PROP_SERVICE_TYPE);
} else {
String emsg = Globals.getBrokerResources().getKString(
BrokerResources.W_JAAS_UNSUPPORTED_TEXTINPUTCALLBACK,
cb.getClass().getName(), cb.getPrompt());
logger.log(logger.WARNING, emsg);
throw new UnsupportedCallbackException(callbacks[i], emsg);
}
if (DEBUG) {
logger.log(logger.INFO, "JAAS CallbackHander handle TextInputCallback prompt: "+
((TextInputCallback)callbacks[i]).getPrompt()+ " - returning " +text);
}
cb.setText(text);
continue;
}
if (callbacks[i] instanceof TextOutputCallback) {
int level = logger.OFF;
TextOutputCallback cb = (TextOutputCallback) callbacks[i];
switch (cb.getMessageType()) {
case TextOutputCallback.INFORMATION:
level = logger.INFO;
break;
case TextOutputCallback.WARNING:
level = logger.WARNING;
break;
case TextOutputCallback.ERROR:
level = logger.ERROR;
break;
default:
String emsg = Globals.getBrokerResources().getKString(
BrokerResources.W_JAAS_UNSUPPORTED_TEXTOUTPUTCALLBACK,
cb.getClass().getName(), Integer.valueOf(cb.getMessageType()));
logger.log(logger.WARNING, emsg);
throw new UnsupportedCallbackException(callbacks[i], emsg);
}
logger.log(level, cb.getClass().getName()+": "+ cb.getMessage());
continue;
}
String emsg = Globals.getBrokerResources().getKString(
BrokerResources.W_JAAS_UNSUPPORTED_CALLBACK,
callbacks[i].getClass().getName());