package es.gob.jmulticard.ui.passwordcallback.gui;
import java.util.logging.Logger;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.PasswordCallback;
import javax.security.auth.callback.UnsupportedCallbackException;
import es.gob.jmulticard.ui.passwordcallback.Messages;
/** CallbackHandler que gestiona los Callbacks de petición de información
* al usuario en tarjetas CERES.
* @author Sergio Martínez Rico. */
public class CeresCallbackHandler implements CallbackHandler {
private static final Logger LOGGER = Logger.getLogger("es.gob.jmulticard"); //$NON-NLS-1$
@Override
public void handle(final Callback[] callbacks) throws UnsupportedCallbackException {
if (callbacks != null) {
for (final Callback cb : callbacks) {
if (cb instanceof PasswordCallback) {
final CommonPasswordCallback uip = new CommonPasswordCallback(
((PasswordCallback)cb).getPrompt(),
Messages.getString("CommonPasswordCallback.2"), //$NON-NLS-1$
false
);
((PasswordCallback)cb).setPassword(uip.getPassword());
return;
}
LOGGER.severe(cb.getClass().getName());
}
}
else {
LOGGER.warning("Se ha recibido un array de Callbacks nulo"); //$NON-NLS-1$
}
throw new UnsupportedCallbackException(null);
}
}