![JAR search and dependency download from the Maven repository](/logo.png)
es.gob.jmulticard.ui.passwordcallback.gui.DnieCallbackHandler Maven / Gradle / Ivy
package es.gob.jmulticard.ui.passwordcallback.gui;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
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.callback.CustomAuthorizeCallback;
import es.gob.jmulticard.ui.passwordcallback.DialogBuilder;
import es.gob.jmulticard.ui.passwordcallback.Messages;
/** CallbackHandler que gestiona los Callbacks de petición de información al usuario.
* @author Sergio Martínez Rico. */
public final class DnieCallbackHandler 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 != null) {
if (
"es.gob.jmulticard.callback.CustomTextInputCallback".equals(cb.getClass().getName()) || //$NON-NLS-1$
"javax.security.auth.callback.TextInputCallback".equals(cb.getClass().getName()) //$NON-NLS-1$
) {
final UIPasswordCallbackCan uip = new UIPasswordCallbackCan(
Messages.getString("CanPasswordCallback.0"), //$NON-NLS-1$
null,
Messages.getString("CanPasswordCallback.0"), //$NON-NLS-1$
Messages.getString("CanPasswordCallback.2") //$NON-NLS-1$
);
try {
final Method m = cb.getClass().getMethod("setText", String.class); //$NON-NLS-1$
m.invoke(cb, new String(uip.getPassword()));
}
catch (final NoSuchMethodException |
SecurityException |
IllegalAccessException |
IllegalArgumentException |
InvocationTargetException e) {
throw new UnsupportedCallbackException(
cb,
"No se ha podido invocar al metodo 'setText' de la callback: " + e //$NON-NLS-1$
);
}
}
else if (cb instanceof CustomAuthorizeCallback) {
DialogBuilder.showSignatureConfirmDialog((CustomAuthorizeCallback)cb);
}
else if (cb instanceof PasswordCallback) {
final CommonPasswordCallback uip = new CommonPasswordCallback(
((PasswordCallback)cb).getPrompt(),
Messages.getString("CommonPasswordCallback.1"), //$NON-NLS-1$
true
);
((PasswordCallback)cb).setPassword(uip.getPassword());
}
else {
throw new UnsupportedCallbackException(cb);
}
}
}
}
else {
LOGGER.warning("Se ha recibido un array de Callbacks nulo"); //$NON-NLS-1$
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy