amap-fire

Última modificación por Administrator el 2020/08/03 10:44

amap-fire-1.0.0 2020/08/03

Primera versión del componente.

<dependency>
<groupId>es.gobcantabria.amap.integracion</groupId>
<artifactId>amap-fire</artifactId>
<version>1.0.0</version>
</dependency>

Es necesario de disponer de los siguientes datos:

Paso 1: Registro en clave:

https://clave.gob.es/clave_Home/registro.htm  -> https://clave.gob.es/clave_Home/registro/Como-puedo-registrarme.html -> "Prueba a hacerlo tú mismo" -> "Registrarse, renunciar y modificar datos en Cl@ve con certificado o DNI electrónico" -> DNI + Fecha Expedición -> teléfono + mail -> pdf con codigo de activación.

Paso 2: Alta en clave permanente:

https://clave.gob.es/ -> empezar -> clave permanente -> procedimientos -> acceso al servicio -> rellenar dni+email+codigo activación (ver paso 1) -> se genera un SMS confirmando el alta.

Sin recursos disponibles.

Configuración

Para la utilización del componente amap-fire basta con añadir el jar y sus correspondientes dependencias al classpath de la aplicación (habitualmente desde maven). 

Configuración de la factoría de AmapFireClienteInterface

Se crea el servicio para realizar las firma.

AmapFireClienteInterface servicio = AmapFireClienteFactory.create(nombreAplicacion, urlRedireccionOk, urlRedireccionError).build();

Requisitos de funcionamiento

Es requisito indispensable el informar el nombre de la aplicación llamante.
Este nombre deberá coincidir con el nombre del fichero de sistemas (sistemas_<nombreAplicacion>.properties).

Nombreamap-fire
Identificadoramap-fire
Grupoes.gobcantabria.amap.integracion
Versión1.0.0
Licencia
DesarrolladorGobierno de Cantarbia
Descripción

Componente de integración con el servidor de Fire del Gobierno de Cantabria

Documentaciónamap-fire (JavaDoc)
Binarioamap-fire (Jar)

Sin particularidades. Seguir las recomendaciones del fabricante.

Flujo del proceso de firma de documentos

  • El cliente solicita la realización de un una firma, iniciando una transacción.
  • El servidor de Fire recibe los datos y envía al proveedor de la firma, en este caso Cl@ve firma, la solicitud de firma.
  • El usuario accede a la url que proporciona Cl@ve firma, introducirá los datos necesarios para realizar la firma.
  • El cliente solicita la finalización de la transacción, obteniendo el documento o los documentos firmados.

EsquemaFire.png

Iniciar Transacción de firma

A continuación se muestra como inicializar la transacción de una firma de documento o documentos.

Información Extra de la Transacción

En caso de sucedan varias peticiones concurrentes se las puede identificar de manera individual con un parametro extra que se encuentra en todas las url de de callback. El parámetro amapFireIdPeticion identificara la petición.

Al iniciar una transacción en el objeto de vuelta vendrá este parámetro, el cual habrá sido añadido a las url de callback, tanto la de ok como la de error.
Se podrá almacenar vinculado al idTransaccion para poder identificarla posteriormente. 

idTransaccion e amapFireIdPeticion no son lo mismo, el primero es el utilizado como parámetro en el API del servicio y el amapFireIdPeticion únicamente es usado para asociar una petición con su callback correspondiente (ya sea ok o error).

En caso de no ser necesario identificar la petición este parámetro puede ser ignorado.

Envío de un documento

Este método permite la creación de una transacción para la operación de firmado de un documento


InputStream documento= IOUtils.toInputStream("Pureba para firmar");
String usuario = "0001";

InicioFirmaDocumento datosFirmaDocumento = new InicioFirmaDocumento(usuario, TipoFirmaEnum.PADES, documento);
Transaccion datosTransaccion = servicio.iniciarTransaccionFirma(datosFirmaDocumento);

String idTransaccion = datosTransaccion.getIdTransaccion();
UUID amapFireIdPeticion =datosTransaccion.getAmapFireIdPeticion();

En caso de ser necesario se podrán modificar los parámetros de las url de redirección sin modificar estas, lo que significa que los parámetros adicionales solo serán para la llamada invocada. Se podrán modificar los parametros de error y de ok de manera individual.


InputStream documento= IOUtils.toInputStream("Prueba para firmar");
String usuario = "0001";

InicioFirmaDocumento datosFirmaDocumento = new InicioFirmaDocumento(usuario, TipoFirmaEnum.PADES, documento);
Map<String, String> parametros = new HashMap<>();
parametros.put("prueba1","prueba1");
parametros.put("prueba2","123456789");
datosFirmaDocumento.setParametrosOk(parametros);
datosFirmaDocumento.setParametrosError(parametros);
Transaccion datosTransaccion = servicio.iniciarTransaccionFirma(datosFirmaDocumento);

String idTransaccion = datosTransaccion.getIdTransaccion();
UUID amapFireIdPeticion =datosTransaccion.getAmapFireIdPeticion();

Envío de un varios documentos

Este método permite la creación de una transacción para la operación de firmado de varios documentos. El id de los documentos debe ser único.


String usuario = "0001";
InputStream documento1= IOUtils.toInputStream("Prueba1 para firmar");
InputStream documento2= IOUtils.toInputStream("Prueba2 para firmar");

Documento documento1 = new Documento("Doc1", documento1);
Documento documento2 = new Documento("Doc2", documento2);
  
List<Documento> listaDocumentos = new ArrayList<Documento>();
listaDocumentos.add(documento1);
listaDocumentos.add(documento2);

InicioFirmaListaDocumentos datosFirmaDocumento = new InicioFirmaListaDocumentos(usuario, TipoFirmaEnum.PADES, listaDocumentos);
Transaccion datosTransaccion = servicio.iniciarTransaccionLoteFirma(datosFirmaDocumento);

String idTransaccion = datosTransaccion.getIdTransaccion();
UUID amapFireIdPeticion =datosTransaccion.getAmapFireIdPeticion();

En caso de ser necesario se podrán modificar los parámetros de las url de redirección sin modificar estas, lo que significa que los parámetros adicionales solo serán para la llamada invocada. En este caso los parámetros serán para todo el lote. Se podrán modificar los parametros de error y de ok de manera individual.


String usuario = "0001";
InputStream documento1= IOUtils.toInputStream("Prueba1 para firmar");
InputStream documento2= IOUtils.toInputStream("Prueba2 para firmar");

Documento documento1 = new Documento("Doc1", documento1);
Documento documento2 = new Documento("Doc2", documento2);
  
List<Documento> listaDocumentos = new ArrayList<Documento>();
listaDocumentos.add(documento1);
listaDocumentos.add(documento2);

InicioFirmaListaDocumentos datosFirmaDocumento = new InicioFirmaListaDocumentos(usuario, TipoFirmaEnum.PADES, listaDocumentos);
Map<String, String> parametros = new HashMap<>();
parametros.put("prueba1","prueba1");
parametros.put("prueba2","123456789");
datosFirmaDocumento.setParametrosOk(parametros);
datosFirmaDocumento.setParametrosError(parametros);
Transaccion datosTransaccion = servicio.iniciarTransaccionLoteFirma(datosFirmaDocumento);

String idTransaccion = datosTransaccion.getIdTransaccion();
UUID amapFireIdPeticion =datosTransaccion.getAmapFireIdPeticion();

Finalizar Transacción de firma

Una vez realizada la firma en la plataforma de Cl@ve firma se podrá obtener dicha firma finalizando la transacción.
A continuación se muestra como finalizar la transacción abierta con uno documento o varios documentos para obtener la firma de dichos documentos.

Obtener firma de un documento

Este método permite la finalizar una transacción para la obtención de la firma de un documento.


String usuario = "0001";
String idTransaccion = "XXXXXXXXXXXXXXXXX"; // valor obtenido de iniciarTransaccionFirma

ResultadoTransaccion resultadoTransaccion = servicio.finalizarTransaccionFirma(idTransaccion, usuario);

Obtener firma de varios documentos

Este método permite finalizar una transacción para la obtención de la firma de varios documentos.


String usuario = "0001";
List<String> listaIdDocumentos = new ArrayList<String>();
listaIdDocumentos.add("Doc1");
listaIdDocumentos.add("Doc2");

List<ResultadoTransaccionLote> resultadoTransaccion = servicio.finalizarTransaccionLoteFirma(idTransaccion, usuario, listaIdDocumentos);

Obtener error de una transacción

Este método permite obtener los errores de una transacción.


String usuario = "0001";
String idTransaccion = "XXXXXXXXXXXXXXXXX"; // valor obtenido de iniciarTransaccionLoteFirma

ErrorTransaccion errorTransaccion = servicio.obtenerErrorTransaccion(idTransaccion, usuario);

© 2014 GOBIERNO DE CANTABRIA - AVISO LEGAL Y PROTECCIÓN DE DATOS