SDK viafirma platform

Procesar respuesta Java

Servlet en la aplicación de ejemplo.

Para procesar la respuesta de viafirma platform nos ayudaremos de un servlet que tendremos a la eschucha en la aplicación, que deberá extender de org.viafirma.cliente.ViafirmaClientServlet y tendrá que sobrescribir los siguientes métodos:

  • authenticateOK: viafirma platform ha recuperado correctamente los datos del certificado digital del usuario final y nos lo devuelve para que nuestra aplicación los procese y decida qué hacer con ellos.

  • cancel: método invocado por viafirma platform en su respuesta cuando el usuario final ha cancelado el proceso voluntariamente (pulsó sobre el botón “cancelar”).

  • error: viafirma platform ha lanzado algún error y la autenticación no ha podido ser completada con éxito. Nuestra aplicación procesará el mensaje de error y poder continuar con la lógica necearia. Ej. “CA no reconocida, certificado revocado, certificado caducado, etc.”.

En la respuesta recibida, se invocará al método ViafirmaClientResponse, que se encuentra dentro del directorio Viafirma. Este método será sobrescrito para implementar la lógica de negocio deseada con los datos recuperados del certificado digital, los cuales vendrán contenidos en el objeto UsuarioGenericoViafirma.

En el siguiente ejemplo, si la autenticación ha sido correcta, guardamos los datos del usuario en la request y redireccionamos al usuario final a una página de destino.

public class ViafirmaClientResponseServlet extends ViafirmaClientServlet {

    @Override
    public void authenticateOK(UsuarioGenericoViafirma usuario,HttpServletRequest request, HttpServletResponse response) {
        // Lógica específica de cada aplicación para gestionar el resultado de la autenticación
        try{
            request.setAttribute(“usuarioAutenticado”,usuario);
            request.getRequestDispatcher("/resultadoAutenticacion.jsp").forward(request, response);
        }catch(ServletException e){
            e.printStackTrace();
        }
        catch (IOException e){
            e.printStackTrace();
        }
    }

    @Override
    public void cancel(HttpServletRequest request, HttpServletResponse response) {
        // Gestión de cancelación del usuario al autenticar o firmar
        request.setAttribute(“error”, “El usuario ha cancelado la autenticación”);
        request.getRequestDispatcher(“/resultadoAutenticacion.jsp”).forward(request, response);
    }
    @Override
    public void error(CodigoError codError, HttpServletRequest request, HttpServletResponse response) {
        // Gestión de error al autenticar o firmar
        request.setAttribute(“codError”, codError);
        request.getRequestDispatcher(“/resultadoAutenticacion.jsp”).forward(request, response);
    }

}