amap-csv

AMAPCSV-2.1.0 2019/04/25

  •  Soporte de nuevo api de firma
  •  Alineación de componentes bouncy castle a la versión jdk15on
  •  Correción en rotación de 90 grados

AMAPCSV-2.0.1 2019/03/05

  •  Cambios en la codificación de la url de referencia documental

AMAPCSV-2.0.0 2019/02/25

  •  Se añaden servicios para generar y desencriptar la referencia documental

AMAPCSV-1.9.0 2019/01/15

  •  Se elimina el sello registro, solo aparecerá la información de registro en el cajetín.

AMAPCSV-1.8.2 2019/01/02

  •  Corrección en el cajetín lateral

AMAPCSV-1.8.1 2018/12/17

  •  Corrección en el paginado de los cajetines
  •  Correción en rotación vetical

AMAPCSV-1.8.0 2018/11/12

  • Se añade soporte de pdfs con formularios

AMAPCSV-1.7.0 2018/10/15

  • nuevo método para obtener el original y firmado a partir de un CSV
     Este método implica estar dado de alta en VerificaCSV para utilizar este servicio

AMAPCSV-1.6.0 2018/09/21

  • Se elimina los métodos deprecated
  • Se añade mensaje de no verificado en pie
  • Registro de Entrada y Salida en los cajetines

AMAPCSV-1.5.6 2018/08/06

  • Limitación tamaño de los firmantes en el cajetín

AMAPCSV-1.5.5 2018/05/24

  • Se elimina la protección de los pdfs generados

AMAPCSV-1.5.4 2018/05/21

  • Corrección en firmantes

AMAPCSV-1.5.3 2018/04/26

  • Corrección en firmantes

AMAPCSV-1.5.1 2018/04/24

  • PDF protegido contra escritura.
  • Cambios menores formato cajetin

AMAPCSV-1.5.0 2018/02/12

  • Cambio de funcionalidad del componente, con nuevos cajetines y funciones de creación de documentos.
  • Cambio de groupid de es.gobcantabria.amap.utilidades a es.gobcantabria.amap.integracion

AMAPCSV-1.4.1 2017/07/03

  • Se crea el método para obtener el servicio con funcionalidad completa.

AMAPCSV-1.4.0 2017/06/01

  • Se añade la Versión 3 del tipo de código de CSV.
    A partir de esta versión la generación de la versión del CSV será con 38 caracteres en vez de 33 de las versiones anteriores

AMAPCSV-1.3.1 2017/02/16

  • Corrección de dependencia con con "amap-firma"

AMAPCSV-1.3.0 2017/02/22

  • Integración con "amap-firma" y "amap-gestor-documental".

AMAPCSV-1.2.0 2015/12/15

  • Nuevos formatos de csv en el pdf: se distinguen documentos firmados con certificado digital y no firmados. 

AMAPCSV-1.1.7 2014/11/14

  • Añadida la posibilidad de mostrar un código QR en lugar del código de barras.
  • Añadidos enlaces a la aplicación de validación en las códigos.
  • Correcciones generales.

AMAPCSV-1.1.5 2014/09/23

  • Añadido la posibilidad de añadir pies con código de verificación a documentos pdf.  

AMAPCSV-1.1.0-SNAPSHOT 2012/10/09

  • Se modifica el acceso al diccionario de datos  

AMAPCSV-1.0.0-SNAPSHOT 2012/09/03

  • Primera versión del componente.
<dependency>
<groupId>es.gobcantabria.amap.integracion</groupId>
<artifactId>amap-csv</artifactId>
<version>2.1.0</version>
</dependency>

N/A

Sin recursos disponibles.

CAMBIOS NUEVA VERSIÓN:
Esta nueva versión genera el código CSV  con 38 caracteres, por favor revisar que vuestras aplicaciones no tienen ninguna restricción a nivel de SGBD

Configuración

Creación de CSV para las operaciones de codificar/decodificar


ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicioCodificacion(clave, diccionario);

ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicioCodificacion(diccionario, propiedades);

Configuración de la factoría de servicios para agregar CSV  con Verificacion

Usuario usuario = new Usuario(nombre, clave, usuarioAuditoria, usuarioProxyWS);
ServicioGestorDocumental servicioGestorDocumental = ServicioGestorDocumental.getServicio( usuario, alfrescoRepositorio, alfrescoUrl
              , alfrescoImplementacion, auditoriaUrl, auditoriaImplementacion );              
InfoCSV inform = new InfoCSV();
  inform.setAplicacionCsv(aplicacion);
  inform.setClave(clave);
  inform.setDiccionario(diccionario);
ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, info);

Configuración de la factoría de servicios para agregar CSV con firma con Verificacion

Usuario usuario = new Usuario(nombre, clave, usuarioAuditoria, usuarioProxyWS);
ServicioGestorDocumental servicioGestorDocumental = ServicioGestorDocumental.getServicio( usuario, alfrescoRepositorio, alfrescoUrl
              , alfrescoImplementacion, auditoriaUrl, auditoriaImplementacion );
FirmaFacade servicioFirma = new FirmaFacade(urlFirma+"/UtilsFirma", "httpclient");              
InfoCSV inform = new InfoCSV();
  inform.setAplicacionCsv(aplicacion);
  inform.setClave(clave);
  inform.setDiccionario(diccionario);
String aliasCertificado=ALIAS_CERTIFICADO;
ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, servicioFirma, aplicacionFirma, info, aliasCertificado);

Configuración de la factoría de servicios para agregar CSV sin Verificacion


ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicioSinVerificacion();

Configuración de la factoría de servicios para obtener documento accediendo a VerificaCsv


ServicioVerificaCSVInterface servicioVerificaCsv = new ServicioVerificaCSVImpl(host, aplicacionLlamente, aplicacionCSV, password, timeout);
** host:el valor definido por -> sistemas.global.amap.verificacsv.url
** aplicacionLlamente: Nombre de aplicación llamante
** aplicacionCSV: Nombre de aplicación CSV
** password: el valor definido por -> sistemas.app.amap.verificacsv.password
** timeout: el valor definido por -> sistemas.app.amap.verificacsv.timeout

Configuración de la factoría de servicios para generar InfoReferenciaDocumental

String urlBaseReferencia = "http://aplicacioneswebdes.intranet.gobcantabria.es/verificacsv";
String app = "estafeta";
String claveEncriptacion;  

ServicioReferenciaDocumentalInterface servicioGenerador;
servicioGenerador = ServiceReferenciaDocumentalFactory.getServicioGenerador(urlBaseReferencia, app, claveEncriptacion);

Configuración de la factoría de servicios para obtener DocumentoReferenciaDocumental

String claveEncriptacion;

Map<String,String> datosAlfresco = new HashMap<>();
datosAlfresco.put("sistemas.app.amap.alfresco.<APP>.usuario", usuario);
datosAlfresco.put("sistemas.app.amap.alfresco.<APP>.password", password);
datosAlfresco.put("sistemas.app.amap.alfresco.<APP>.repositorio", repositorio);

InfoServicioGestorDocumental inforServicioGestorDocumental = new InfoServicioGestorDocumental ();
inforServicioGestorDocumental.setUsuarioProxy(idaplicacion);
inforServicioGestorDocumental.setUsuarioAuditoria(usuarioAuditoria);
inforServicioGestorDocumental.setUrlServicioGestordocumental(cmisUrl);
inforServicioGestorDocumental.setUrlServicioAuditoria(auditoriaUrl);
inforServicioGestorDocumental.setImplementacionServicioGestorDocumental(alfrescoImplementacion);
inforServicioGestorDocumental.setImplementacionServicioAuditoria(auditoriaImplementacion); 

ServicioReferenciaDocumentalInterface servicioDescifrado;
servicioDescifrado = ServiceReferenciaDocumentalFactory.getServicioDescifrado(claveEncriptacion, datosAlfresco, inforServicioGestorDocumental);

El servicio concreto a usar se definirá a partir de un fichero de properties junto con el resto de los parámetros:

KeyDescripciónEjemplo
sistemas.app.amap.alfresco.usuarioUsuario necesario para autenticarse en el gestor documentalg_sidgdit
sistemas.app.amap.alfresco.passwordPassword necesaria para autenticarse en el gestor documental*
sistemas.app.amap.alfresco.repositorioRepositorio del gestor documental con el que se va a trabajarsidgdit
sistemas.app.amap.alfresco.usuarioAuditoriaUsuario necesario para realizar la auditoría de el gestor documental. Puramente informativo. La gestión de este usuario se realiza desde la aplicación consumidora del serviciog_sidgdit
sistemas.app.proxy.idaplicacionUsuario del Proxy de servicios corporativo. De no informar de este usuario no se realizará la autorización (Basic Authorization)sidgdit
sistemas.global.amap.alfresco.cmis.urlEndpoint del servicio web de Alfresco.http://*****/alfresco
sistemas.app.amap.alfresco.implementacionImplementación del gestor documental a usar. Existen tres: cmis, alfresco y mock, el uso de la implementación "alfresco" está obsoleta y no debe utilizarse.cmis
sistemas.global.amap.auditoria.urlEndpoint del servicio web de auditoria. Necesaria cuando se emplee la implementación de CMIS.http://******/proxyws/services/AuditoriaWS
sistemas.app.amap.auditoria.implementacionImplementación del servicio web de auditoria. Al igual que ocurre con el parámetro "urlServicioAuditoria", necesaria cuando se emplee la implementación de CMIS.cxf
sistemas.global.amap.firma.urlEndpoint del servicio web de firma.http://*******/integraciongcnet/services
sistemas.global.amap.csv.claveencriptacionClave de encriptación.<clave_encriptación>
sistemas.global.amap.csv.educacion.claveencriptacionClave de encriptación.<clave_encriptación>
sistemas.global.amap.verificacsv.urlHost de la aplicación VerificaCSVhttp://*******
sistemas.app.amap.verificacsv.timeoutMilisegundos de timeout del servicio60000
sistemas.app.amap.verificacsv.passwordPassword proporcionado al dar de alta la aplicación en VerificaCSV*
sistemas.global.amap.repositorioReferencia.claveencriptacionClave necesaria para encriptar y desencriptar*
Los valores de las propieades aquí mostrados son meramente ilustrativos. En los entornos de desarrollo / preproducción y producción los valores de las variables han de ser externalizados tal y como se especifica en el documento Definición de acceso a propiedades de sistema

Ejemplo de contenido del fichero de propiedades:

sistemas.app.amap.alfresco.password=*****
sistemas.app.amap.alfresco.usuarioAuditoria=PROXYWS
#Necesario en caso de entrar por ProxyWS
sistemas.app.proxy.idaplicacion=sidgdit
sistemas.app.amap.alfresco.usuario=g_sidgdit
sistemas.app.amap.alfresco.repositorio=sidgdit
sistemas.global.amap.alfresco.cmis.url=http://*****/alfresco
sistemas.app.amap.alfresco.implementacion=cmis
sistemas.global.amap.auditoria.url=http://*****/proxyws/services/AuditoriaWS
sistemas.app.amap.auditoria.implementacion=cxf
sistemas.global.amap.firma.url=http://*******/integraciongcnet/services
sistemas.app.amap.firma.idaplicacion=*******
sistemas.app.amap.firma.aliascertificado=*******
sistemas.global.amap.verificacsv.url=http://*******
sistemas.app.amap.verificacsv.timeout=60000
sistemas.app.amap.verificacsv.password=******

Diccionario de datos

El diccionario define las aplicaciones existentes y compatibles con el componente CSV y, por tanto, se ha de actualizar con aquellas nuevas aplicaciones que se incorporen al sistema.

Para ello existe una clase DiccionarioProperties que implementa el interface DiccionarioInterface encargada de obtener el par "aplicación - traducción" de un fichero properties. El sistema se encarga automáticamente, en la inicialización, de crear los tablas de conversión en ambos sentidos.

El fichero "properties" con el par "aplicación - código" deberá llamarse amapcsv_diccionario.properties y estar cargado en la carpeta "comunes" dentro del "ruta_data".

A continuación, se muestra un snippet de ejemplo del fichero amapcsv_diccionario.properties:

A=PORTAFIRMAS_CORP
B=REC
C=COMPULSA
D=SIA
E=scsp
F=TREWA
G=SOGI
H=GICAS
I=SIACAN
J=SOLFORMASCE
K=PAC2015-20
L=FAECA
M=REGISTRO
N=EBRO
O=AYTOSTRAMITACION
P=REGENTFOR
Q=PUNTAL

A continuación, se configura la ruta del fichero amapcsv_diccionario.properties y se carga la clase DiccionarioProperties:

File fileProperties = new File(MessageResourceBean.RUTA_DATA+"/comunes/amapcsv_diccionario.properties");
DiccionarioProperties diccionarioProperties= new DiccionarioProperties(fileProperties);


public DiccionarioProperties(File fileProperties) {
  if (config == null) {
   LOG.info("Cargando diccionario.properties...");
   String nombreFicheroProperties = fileProperties.getAbsolutePath();
   loadDiccionario(nombreFicheroProperties);
  }
 }

Tipos de cajetines:

1. Por defecto


 Cajetín por defecto  Descargar


CajetinPorDefecto

2. Sin lateral


 Cajetín sin lateral  Descargar

CajetinSinLateral

3. Tipo ENI


 Cajetín tipo ENI    Descargar

CajetinEni

4. Registro

 Cajetín registro por defecto o simplificado, con registro de entrada y salida, en un documento de cajetín sin lateral  Descargar

CajetinRegistro

 Cajetín registro por defecto o simplificado, con registro de salida, en un documento con cajetín por defecto           Descargar

CajetinPorDefectoB

 Cajetín registro por defecto o simplificado, con registro de entrada, en un documento de cajetín sin lateral           Descargar

CajetinSinLateralB

Nombreamap-csv
Identificadoramap-csv
Grupoes.gobcantabria.amap.integracion
Versión2.1.0
Licencia
DesarrolladorGuadaltel / Gobierno de Cantabria
Descripción

Utilidad para la generación de códigos seguros de verificación en base al nombre de la aplicación y al uuid del documento generado. 

Documentaciónamap-csv (JavaDoc)
Binarioamap-csv (Jar)
Dependenciasamap-csv (Librerías)

Sin particularidades. Seguir las recomendaciones del fabricante.

Ejemplos de uso

Nota Importante:

En la nueva versión se han eliminado los métodos deprecated.

En los ejemplos se utiliza la variable desKey como parámetro, esta variable deberá tomar el valor de la propiedad del sistema:

sistemas.global.amap.csv.claveencriptacion  
sistemas.global.amap.csv.educacion.claveencriptacion  

Tal y como se especifica en el documento Definición de acceso a propiedades de sistema

Para pruebas internas podrá utilizarse el valor "Constantes.TEST_DES_KEY" definido en el componente.

El algoritmo estándar ha sido etiquetado como "deprecated". Sólo se mantiene por compatibilidad con aplicaciones legacy. Para nuevos desarrollos se ha de utilizar siempre el algoritmo corto.
  • Si un documento es ENI, el informe de firma que se generara sera con el CAJETIN_DOC_ENI aunque se indique otro tipo de cajetin.
  • Si el documento tiene informacion de registro y se se quiere mostrar el cajetin de registro vale con añadir

datosPie.setTipoCajetinRegistro(TipoSelloRegistro.CAJETIN_SIMPLIFICADO); CAJETIN_DEFECTO

  • Si es servicio sin verificacion

DatosRegistro registro = new DatosRegistro();
registro.setSalFecha("14/06/2017 00:00");
registro.setSalNumeroRegistro("xxxxxxxxxxxxxxxx");
registro.setSalUnidadRegistro("xxxxxxxxxxxxxxxxxxxxxx");
registro.setSalCodigoOficina("xxxxx");
registro.setEntFecha("14/06/2017 00:00");
registro.setEntNumeroRegistro("xxxxxxxxxxxxxxxx");
registro.setEntUnidadRegistro("xxxxxxxxxxxxxxxxxxxxxx");
registro.setEntCodigoOficina("xxxxx");
datosPie.setTipoCajetinRegistro(TipoSelloRegistro.CAJETIN_DEFECTO); CAJETIN_SIMPLIFICADO

Codificación/Decodificación - Algoritmo corto (Recomendado)

 

El CSV generado por el primer algoritmo es de 76 caracteres. Utilizando el segundo algoritmo es posible obtener un CSV de 38  caracteres( a partir de la versión 1.4.0 del componente), lo que facilita su introducción manual en caso de que sea necesario.

A diferencia del anterior proceso de codificación/decodificación (algoritmo estándar), en este caso, necesitaremos de la existencia de
un diccionario de aplicaciones para que se pueda realizar la búsqueda de la correspondencia entre el nombre de la aplicación y el
prefijo correspondiente, que será el que junto con el identificador del documento en Alfresco, se codificará para formar el código
CSV. En el apartado de configuración, se detalla más sobre la creación de este diccionario de aplicaciones.
CodificacionCSV info = new CodificacionCSV();
info.setUuid(uuid);
info.setAplicacionCsv(aplicacion);
ServicioCSVInterface scsv = ServicioCSVFactory.getServicioCodificacion(desKey, diccionario);
String csv = scsv.codifica(doc);
String codCsv = "XXXXXXXXXX";
CodificacionCSV documento = scsv.descodifica(codCsv);

Generar informe de firma a documento con código de verificación sin firma

 

Agrega un Pie, al documento PDF asociado al ID de Alfresco informado, con el correspondiente código de verificación(CSV) como enlace a una URL.

  String idDocumento = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX";
  String aplicacion = "ID-DOC-ALFRESCO";
  
  DocumentoVerificacion documento = new DocumentoVerificacion();
  documento.setUuid(uuid);

  DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
  datosPie.setUrlVerificacionFirma(URL);
  datosPie.setNumPaginas(true);
  datosPie.setCodigoQR(true);
  datosPie.setUrlLink(true);
  datosPie.setTipoCajetin(TipoCajetin.CAJETIN_POR_DEFECTO);  //TipoCajetin.CAJETIN_SIN_LATERAL

  Usuario usuario = new Usuario(nombre, clave, usuarioAuditoria, usuarioProxyWS);
  ServicioGestorDocumental servicioGestorDocumental = ServicioGestorDocumental.getServicio( usuario, alfrescoRepositorio, alfrescoUrl
                    , alfrescoImplementacion, auditoriaUrl, auditoriaImplementacion );
  InfoCSV info = new InfoCSV();
  info.setAplicacionCsv(aplicacion);
  info.setClave(clave);
  info.setDiccionario(diccionario);
  ServicioPDFCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, info);
  
  byte[] baos = servicioPDFCSV.generarInformeFirma(datosPie, documento);

Generar informe de firma a documento ENI con código de verificación sin firma

 

Agrega un Pie, al documento ENI asociado al ID de Alfresco informado, con el correspondiente código de verificación(CSV) como enlace a una URL.

Este método solamente debe utilizarse con documentos electronicos NO firmados con certificado digital

  String idDocumento = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX";
  String aplicacion = "ID-DOC-ALFRESCO";
  
  DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
  datosPie.setUrlVerificacionFirma(URL);
  datosPie.setNumPaginas(true);
  datosPie.setCodigoQR(true);
  datosPie.setUrlLink(true);
  datosPie.setTipoCajetin(TipoCajetin.CAJETIN_DOC_ENI);
  
  UUID uuid = UUID.fromString(idDocumento);
  DocumentoVerificacion documento = new DocumentoVerificacion();
  documento.setUuid(uuid);
  
  InfoCSV inform = new InfoCSV();
  inform.setAplicacionCsv(aplicacion);
  inform.setClave(clave);
  inform.setDiccionario(diccionario);

  Usuario usuario = new Usuario(nombre, clave, usuarioAuditoria, usuarioProxyWS);
  ServicioGestorDocumental servicioGestorDocumental = ServicioGestorDocumental.getServicio( usuario, alfrescoRepositorio, alfrescoUrl
                    , alfrescoImplementacion, auditoriaUrl, auditoriaImplementacion );
  ServicioPDFCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, info);
  
  byte[] baos = servicioPDFCSV.generarInformeFirma(datosPie, documento);

Generar informe de firma a documento con código de verificación con firma

 

Agrega un Pie a un documento PDF con el correspondiente código de verificación como enlace a una URL y el identificador de Alfresco.

  String idDocumento = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX";
  String aplicacion = "ID-DOC-ALFRESCO";
  
  DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
  datosPie.setUrlVerificacionFirma(URL);
  datosPie.setNumPaginas(true);
  datosPie.setCodigoQR(true);
  datosPie.setUrlLink(true);
  datosPie.setTipoCajetin(TipoCajetin.CAJETIN_POR_DEFECTO);
  
  UUID uuid = UUID.fromString(idDocumento);
  DocumentoVerificacion documento = new DocumentoVerificacion();
  documento.setUuid(uuid);
  
  InfoCSV inform = new InfoCSV();
  inform.setAplicacionCsv(aplicacion);
  inform.setClave(clave);
  inform.setDiccionario(diccionario);
  
  Usuario usuario = new Usuario(nombre, clave, usuarioAuditoria, usuarioProxyWS);
  ServicioGestorDocumental servicioGestorDocumental = ServicioGestorDocumental.getServicio( usuario, alfrescoRepositorio, alfrescoUrl
                                                                           , alfrescoImplementacion, auditoriaUrl, auditoriaImplementacion );

  String aplicacionFirma = "NOM-APLIC-FIRMA";
  String aliasCertificado=ALIAS_CERTIFICADO;
  
  AmapFirmaServiceInterface amapFirmaService;
  amapFirmaService = AmapFirmaServiceFactory.getService(URL_FIRMA_BASE, IMPLEMENTACION_FIRMA, TIMEOUT_FIRMA, IDAPLICACION);

  ServicioPDFCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, amapFirmaService, 
                                                                           aplicacionFirma, inform, aliasCertificado);
  byte[] baos = servicioPDFCSV.generarInformeFirma(datosPie, documento);

Esté método soporta la antigua implementación de amap-firma (versiones anteriores a 3.3.0)

FirmaFacade firmaFacade = new FirmaFacade(urlFirma+"/UtilsFirma", "httpclient");
ServicioPDFCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, firmaFacade, aplicacionFirma, inform, aliasCertificado);

Generar informe de firma a documento ENI con código de verificación con firma

 

Agrega un Pie a un documento ENI PDF con el correspondiente código de verificación como enlace a una URL y el identificador de Alfresco.

  String idDocumento = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX";
                String idDocumentoElectronico = "XX_XXXXXXXXX_XXXX_X_XXX_XXXXXXXXXXXXXXXX";
  String aplicacion = "ID-DOC-ALFRESCO";
  
  DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
  datosPie.setUrlVerificacionFirma(URL);
  datosPie.setNumPaginas(true);
  datosPie.setCodigoQR(true);
  datosPie.setUrlLink(true);
  datosPie.setTipoCajetin(TipoCajetin.CAJETIN_DOC_ENI);
  
  DocumentoVerificacion documento = new DocumentoVerificacion();
  documento.setUuid(uuid);
  
  String aplicacionFirma = "NOM-APLIC-FIRMA";
                String aliasCertificado=ALIAS_CERTIFICADO;
  InfoCSV inform = new InfoCSV();
  inform.setAplicacionCsv(aplicacion);
  inform.setClave(clave);
  inform.setDiccionario(diccionario);

  Usuario usuario = new Usuario(nombre, clave, usuarioAuditoria, usuarioProxyWS);
  ServicioGestorDocumental servicioGestorDocumental = ServicioGestorDocumental.getServicio( usuario, alfrescoRepositorio, alfrescoUrl
                    , alfrescoImplementacion, auditoriaUrl, auditoriaImplementacion );

  AmapFirmaServiceInterface amapFirmaService;
  amapFirmaService = AmapFirmaServiceFactory.getService(URL_FIRMA_BASE, IMPLEMENTACION_FIRMA, TIMEOUT_FIRMA, IDAPLICACION);

  ServicioPDFCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, amapFirmaService, aplicacionFirma,
                    inform, aliasCertificado);

  byte[] baos = servicioPDFCSV.generarInformeFirma(datosPie, documento);

Esté método soporta la antigua implementación de amap-firma (versiones anteriores a 3.3.0)

FirmaFacade firmaFacade = new FirmaFacade(urlFirma+"/UtilsFirma", "httpclient");
ServicioPDFCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, firmaFacade, aplicacionFirma, inform, aliasCertificado);

Generar informe de firma a documento sin verificacion sin firma

 

Agrega un Pie, al documento PDF asociado al ID de Alfresco informado, con el correspondiente código de verificación(CSV) como enlace a una URL.

  String idDocumento = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX";
  String aplicacion = "ID-DOC-ALFRESCO";
  
  File fichero = new File(urlFile);
  byte[] documentoOrigen = FileUtils.readFileToByteArray(fichero);
  String codCsv = "A0600XXXXXXXXXXXXX";
  DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
  datosPie.setUrlVerificacionFirma(URL);
  datosPie.setNumPaginas(true);
  datosPie.setCodigoQR(true);
  datosPie.setUrlLink(true);
  datosPie.setTipoCajetin(TipoCajetin.CAJETIN_POR_DEFECTO);

  UUID uuid = UUID.fromString(idDocumento);
  DocumentoSinVerificacion documento = new DocumentoSinVerificacion();
  documento.setUuid(uuid);
  documento.setCsv(codCsv);
  documento.setDocumento(documentoOrigen);
  documento.setFechaAlta(new Date());
  ServicioPDFCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicioSinVerificacion();
  
  byte[] baos = servicioPDFCSV.generarInformeFirma(datosPie, documento);

Generar informe de firma a documento ENI sin verificación sin firma

 

Agrega un Pie, al documento ENI PDF asociado al ID de Alfresco informado, con el correspondiente código de verificación(CSV) como enlace a una URL.

Este método solamente debe utilizarse con documentos electronicos NO firmados con certificado digital

  String idDocumento = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX";
  String aplicacion = "ID-DOC-ALFRESCO";
  String idDocumentoElectronico = "XX_XXXXXXXXX_XXXX_X_XXX_XXXXXXXXXXXXXXXXXXXXXXXX";
  
  File fichero = new File(urlFile);
  byte[] documentoOrigen = FileUtils.readFileToByteArray(fichero);
  String codCsv = "A0600XXXXXXXXXXXXX";
  DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
  datosPie.setUrlVerificacionFirma(URL);
  datosPie.setNumPaginas(true);
  datosPie.setCodigoQR(true);
  datosPie.setUrlLink(true);
  datosPie.setTipoCajetin(TipoCajetin.CAJETIN_DOC_ENI);
  
  DocumentoSinVerificacion documento = new DocumentoSinVerificacion();
  documento.setIdDocEni(idDocumento);
  documento.setCsv(codCsv);
  documento.setDocumento(documentoOrigen);
  documento.setFechaAlta(new Date());

        DatosENI datosENI = new DatosENI();
  datosENI.setIdDocENI("XX_XXXXXXXX_XXXX_XXX_XXX_XXXXXXXXXXXXXXX");
  datosENI.setFechaCaptura("AAAA-MM-DD HH:MM");
  datosENI.setEstadoElaboracion("XXXX");
  datosENI.setFormato("pdf");
  List<String> organos = new ArrayList<>();
  organos.add("XXXXXXXXX");
  datosENI.setOrganos(organos);
  datosENI.setTipoDocumental("XXXX");
  datosENI.setValidez(ValidezEnum.COPIA_ELECTRONICA_AUTENTICA);
  datosENI.setVersionNTI("xxxxxxx");
  documento.setDatosENI(datosENI);

  ServicioPDFCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicioSinVerificacion();
  
  byte[] baos = servicioPDFCSV.generarInformeFirma(datosPie, documento);

Generar informe de firma a documento sin verificación con firma

 

Agrega un Pie a un documento PDF con el correspondiente código de verificación como enlace a una URL y el identificador de Alfresco.

  String idDocumento = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX";
  String aplicacion = "ID-DOC-ALFRESCO";
  
  File fichero = new File(urlFile);
  byte[] documentoOrigen = FileUtils.readFileToByteArray(fichero);
  String codCsv = "A0600XXXXXXXXXXXXX";
  DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
  datosPie.setUrlVerificacionFirma(URL);
  datosPie.setNumPaginas(true);
  datosPie.setCodigoQR(true);
  datosPie.setUrlLink(true);
  datosPie.setTipoCajetin(TipoCajetin.CAJETIN_POR_DEFECTO);

  UUID uuid = UUID.fromString(idDocumento);
  DocumentoSinVerificacion documento = new DocumentoSinVerificacion();
  documento.setDatosRegistro(registro);
  documento.setCsv(codCsv);
  documento.setDocumento(documentoOrigen);
  
  Firmante[] firmantes = new Firmante[1];
  Firmante firmante1 = new Firmante();
  firmante1.setNombre("XXXX");
  firmantes[0]= firmante1;
  documento.setFirmantes(firmantes);
  
  ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicioSinVerificacion();
  
  byte[] baos = servicioPDFCSV.generarInformeFirma(datosPie, documento);

Generar informe de firma a documento sin verificación con firma y cajetin de registro

 

Agrega un Pie a un documento PDF con el correspondiente código de verificación como enlace a una URL y el identificador de Alfresco.

  String idDocumento = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX";
  String aplicacion = "ID-DOC-ALFRESCO";
  
  File fichero = new File(urlFile);
  byte[] documentoOrigen = FileUtils.readFileToByteArray(fichero);
  String codCsv = "A0600XXXXXXXXXXXXX";
  DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
  datosPie.setUrlVerificacionFirma(URL);
  datosPie.setNumPaginas(true);
  datosPie.setCodigoQR(true);
  datosPie.setUrlLink(true);
  datosPie.setTipoCajetin(TipoCajetin.CAJETIN_POR_DEFECTO);
  
  DatosRegistro registro = new DatosRegistro();
     registro.setFecha("14/06/2017 00:00");
     registro.setNumeroRegistro("XXXXXXXXXXXXXXXX");
     registro.setUnidadRegistro("XXXXXX");
     registro.setCodigoOficina("XXXXX");
     
     datosPie.setTipoCajetinRegistro(TipoSelloRegistro.CAJETIN_SIMPLIFICADO); 
  

  UUID uuid = UUID.fromString(idDocumento);
  DocumentoSinVerificacion documento = new DocumentoSinVerificacion();
  documento.setDatosRegistro(registro);
  documento.setCsv(codCsv);
  documento.setDocumento(documentoOrigen);
  
  Firmante[] firmantes = new Firmante[1];
  Firmante firmante1 = new Firmante();
  firmante1.setNombre("XXXX");
  firmantes[0]= firmante1;
  documento.setFirmantes(firmantes);
  
  ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicioSinVerificacion();
  
  byte[] baos = servicioPDFCSV.generarInformeFirma(datosPie, documento);

Generar informe de firma a documento ENI sin verificación con firma

 

Agrega un Pie a un documento ENI PDF con el correspondiente código de verificación como enlace a una URL y el identificador de Alfresco.

  String idDocumento = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX";
                String idDocumentoElectronico = "XX_XXXXXXXXX_XXXX_X_XXX_XXXXXXXXXXXXXXXX";
  String aplicacion = "ID-DOC-ALFRESCO";
  
  File fichero = new File(urlFile);
  byte[] documentoOrigen = FileUtils.readFileToByteArray(fichero);
  String codCsv = "A0600XXXXXXXXXXXXX";
  DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
  datosPie.setUrlVerificacionFirma(URL);
  datosPie.setNumPaginas(true);
  datosPie.setCodigoQR(true);
  datosPie.setUrlLink(true);
  datosPie.setTipoCajetin(TipoCajetin.CAJETIN_DOC_ENI);
  
  DocumentoSinVerificacion documento = new DocumentoSinVerificacion();
  documento.setFechaAlta(new Date());
  documento.setIdDocEni(idDocumento);
  Firmante[] firmantes = new Firmante[3];
  Firmante firmante1 = new Firmante();
  firmante1.setNombre("XXX XXXX XXXXX");
  Firmante firmante2 = new Firmante();
  firmante2.setNombre("XXX XXXX XXXXX");
  Firmante firmante3 = new Firmante();
  firmante3.setNombre("XXX XXXX XXXXX");
  firmantes[0]= firmante1;
  firmantes[1]= firmante2;
  firmantes[2]= firmante3;
  documento.setFirmantes(firmantes);
  documento.setCsv(codCsv);
  documento.setDocumento(documentoOrigen);

        DatosENI datosENI = new DatosENI();
  datosENI.setIdDocENI("XX_A0600XXX_2018_DOC_00X_0000000000000000000XX");
  datosENI.setFechaCaptura("AAAA-MM-DD HH:MM");
  datosENI.setEstadoElaboracion("XXXX");
  datosENI.setFormato("pdf");
  List<String> organos = new ArrayList<>();
  organos.add("A0600XXXX");
  datosENI.setOrganos(organos);
  datosENI.setTipoDocumental("XXXX");
  datosENI.setValidez(ValidezEnum.COPIA_ELECTRONICA_AUTENTICA);
  datosENI.setVersionNTI("http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e");
  documento.setDatosENI(datosENI);
  
  ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicioSinVerificacion();
  byte[] baos = servicioPDFCSV.generarInformeFirma(datosPie, documento);

Agregar Sello de registro con verificación

 

Agrega el sello de registro.

DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
datosPie.setUrlVerificacionFirma(URL);
datosPie.setNumPaginas(true);
datosPie.setCodigoQR(true);
datosPie.setUrlLink(true);
datosPie.setTipoCajetinRegistro(TipoSelloRegistro.CAJETIN_DEFECTO);

DocumentoVerificacion documentoVerificacion = new DocumentoVerificacion();
documentoVerificacion.setCsv(documento.getCsv());

InfoCSV inform = new InfoCSV();
inform.setAplicacionCsv(aplicacion);
inform.setClave(clave);
inform.setDiccionario(diccionario);
                
ServicioGestorDocumental servicioGestorDocumental = ServicioGestorDocumental.getServicio(usuario, alfrescoRepositorio, alfrescoUrl, 
                                                                                alfrescoImplementacion, auditoriaUrl,auditoriaImplementacion );

ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, inform);

byte[] baos = servicioPDFCSV.agregarSelloRegistro(datosPie, documentoVerificacion);

Agregar Sello de registro sin verificación

 

Agrega el sello de registro.

File fichero = new File(urlFile);
byte[] documentoOrigen = FileUtils.readFileToByteArray(fichero);
String codCsv = "A0600XXXXXXXXXXXXX";

DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
datosPie.setUrlVerificacionFirma(URL);
datosPie.setNumPaginas(true);
datosPie.setCodigoQR(true);
datosPie.setUrlLink(true);
datosPie.setTipoCajetinRegistro(TipoSelloRegistro.CAJETIN_DEFECTO);
  
DocumentoSinVerificacion documento = new DocumentoSinVerificacion();
documento.setDocumento(documentoOrigen);
documento.setCsv(codCsv);

DatosRegistro registro = new DatosRegistro();
registro.setSalFecha("dd/MM/yyyy hh:mm");
registro.setSalNumeroRegistro("xxxxxxxxxxxxxxxx");
registro.setSalUnidadRegistro("xxxxxxxxxxxxxxxxxxxxxx");
registro.setSalCodigoOficina("xxxxx");
registro.setEntFecha("dd/MM/yyyy hh:mm");
registro.setEntNumeroRegistro("xxxxxxxxxxxxxxxx");
registro.setEntUnidadRegistro("xxxxxxxxxxxxxxxxxxxxxx");
registro.setEntCodigoOficina("xxxxx");
documento.setDatosRegistro(registro);
  
ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicioSinVerificacion();
byte[] baos = servicioPDFCSV.agregarSelloRegistro(datosPie, documento);

Crea un documento sin firma

 

Añade un documento a alfresco obteniendo su csv.

 File fichero = new File(urlFile);
 Documento document = new Documento();
 Date dNow = new Date();
 Long time = dNow.getTime();
 document.setNombre(time + fichero.getName());
 document.setContenido(FileUtils.readFileToByteArray(fichero));
 document.setTipoDocumental("cmis:document");
 
 DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
 datosPie.setUrlVerificacionFirma(URL);
 datosPie.setNumPaginas(true);
 datosPie.setCodigoQR(true);
 datosPie.setUrlLink(true);
 datosPie.setTipoCajetin(TipoCajetin.CAJETIN_POR_DEFECTO);
 
 String aplicacion = "ID-DOC-ALFRESCO";
 InfoCSV inform = new InfoCSV();
 inform.setAplicacionCsv(aplicacion);
 inform.setClave(clave);
 inform.setDiccionario(diccionario);
 
 ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, inform); 
 DocumentoCSV documento = servicioPDFCSV.createDocumento(document, CARPETA_DESTINO, datosPie, inform, null, true);

Crea un documento y lo firma

 

Añade un documento a alfresco y lo firma.

 File fichero = new File(urlFile);
 Documento document = new Documento();
 Date dNow = new Date();
 Long time = dNow.getTime();
 document.setNombre(time + fichero.getName());
 document.setContenido(FileUtils.readFileToByteArray(fichero));
 document.setTipoDocumental("cmis:document");
 
 DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
 datosPie.setUrlVerificacionFirma(URL);
 datosPie.setNumPaginas(true);
 datosPie.setCodigoQR(true);
 datosPie.setUrlLink(true);
 datosPie.setTipoCajetin(TipoCajetin.CAJETIN_POR_DEFECTO);
 
 String aplicacion = "ID-DOC-ALFRESCO";
 InfoCSV inform = new InfoCSV();
 inform.setAplicacionCsv(aplicacion);
 inform.setClave(clave);
 inform.setDiccionario(diccionario);
 
 String certificado = ALIAS_CERTIFICADO;
 String aplicacionFirma = "NOM-APLIC-FIRMA";

 AmapFirmaServiceInterface amapFirmaService;
 amapFirmaService = AmapFirmaServiceFactory.getService(URL_FIRMA_BASE, IMPLEMENTACION_FIRMA, TIMEOUT_FIRMA, IDAPLICACION);

 ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, amapFirmaService, aplicacionFirma, inform, certificado);
 DocumentoCSV documento = servicioPDFCSV.createDocumento(document, CARPETA_DESTINO, TipoFirma.PADES_BASICO, datosPie, inform, null, true);

Esté método soporta la antigua implementación de amap-firma (versiones anteriores a 3.3.0)

FirmaFacade firmaFacade = new FirmaFacade(urlFirma+"/UtilsFirma", "httpclient");
ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, firmaFacade, aplicacionFirma, inform, certificado);

Crea un documento firmado previamente verificando el documeto firmado

 

Añade un documento a alfresco obteniendo su csv.

 File fichero = new File(urlFile);
 Documento document = new Documento();
 Date dNow = new Date();
 Long time = dNow.getTime();
 document.setNombre(time + fichero.getName());
 document.setContenido(FileUtils.readFileToByteArray(fichero));
 document.setTipoDocumental("cmis:document");
 
 DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
 datosPie.setUrlVerificacionFirma(URL);
 datosPie.setNumPaginas(true);
 datosPie.setCodigoQR(true);
 datosPie.setUrlLink(true);
 datosPie.setTipoCajetin(TipoCajetin.CAJETIN_POR_DEFECTO);
 
 String aplicacion = "ID-DOC-ALFRESCO";
 InfoCSV inform = new InfoCSV();
 inform.setAplicacionCsv(aplicacion);
 inform.setClave(clave);
 inform.setDiccionario(diccionario);
 File fichero = new File(urlFile);
 byte[] binarioFirmado = FileUtils.readFileToByteArray(fichero);
 String certificado = ALIAS_CERTIFICADO;
 String aplicacionFirma = "NOM-APLIC-FIRMA";

 AmapFirmaServiceInterface amapFirmaService;
 amapFirmaService = AmapFirmaServiceFactory.getService(URL_FIRMA_BASE, IMPLEMENTACION_FIRMA, TIMEOUT_FIRMA, IDAPLICACION);

 ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, amapFirmaService, aplicacionFirma, inform, certificado);
 DocumentoCSV documento = servicioPDFCSV.createDocumento(document, CARPETA_DESTINO, binarioFirmado, TipoFirma.PADES_BASICO, datosPie, inform, null, false, true);

Esté método soporta la antigua implementación de amap-firma (versiones anteriores a 3.3.0)

 FirmaFacade servicioFirma = new FirmaFacade(urlFirma+"/UtilsFirma", "httpclient");
 ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, servicioFirma, aplicacionFirma, inform, certificado);

Crea un documento firmado previamente pasando el idDocFirma

 

Añade un documento a alfresco obteniendo su csv.

 File fichero = new File(urlFile);
 Documento document = new Documento();
 Date dNow = new Date();
 Long time = dNow.getTime();
 document.setNombre(time + fichero.getName());
 document.setContenido(FileUtils.readFileToByteArray(fichero));
 document.setTipoDocumental("cmis:document");
 
 DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
 datosPie.setUrlVerificacionFirma(URL);
 datosPie.setNumPaginas(true);
 datosPie.setCodigoQR(true);
 datosPie.setUrlLink(true);
 datosPie.setTipoCajetin(TipoCajetin.CAJETIN_POR_DEFECTO);
 
 String aplicacion = "ID-DOC-ALFRESCO";
 InfoCSV inform = new InfoCSV();
 inform.setAplicacionCsv(aplicacion);
 inform.setClave(clave);
 inform.setDiccionario(diccionario);
 String idDocFirma ="XXXX";
 
 String certificado = ALIAS_CERTIFICADO;
 String aplicacionFirma = "NOM-APLIC-FIRMA";
 
 AmapFirmaServiceInterface amapFirmaService;
 amapFirmaService = AmapFirmaServiceFactory.getService(URL_FIRMA_BASE, IMPLEMENTACION_FIRMA, TIMEOUT_FIRMA, IDAPLICACION);

 ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, amapFirmaService, aplicacionFirma, inform, certificado);
 DocumentoCSV documento = servicioPDFCSV.createDocumento(document, CARPETA_DESTINO, idDocFirma, datosPie, inform, null, false);

Esté método soporta la antigua implementación de amap-firma (versiones anteriores a 3.3.0)

 FirmaFacade servicioFirma = new FirmaFacade(urlFirma+"/UtilsFirma", "httpclient");
 ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, servicioFirma, aplicacionFirma, inform, certificado);

Obtención de documentos accediendo a VerificaCsv

 

Obtiene un documento accediendo a la aplicación VerificaCSV

GetDocumentoResponse documento = servicioVerificaCsv.getDocumentosCsv(usuarioSolicitante, csv);

Crea un documento ENI con firma sin cajetin

 

Añade un documento ENI a alfresco obteniendo su csv.

 File fichero = new File(urlFile);
 Documento document = new Documento();
 Date dNow = new Date();
 Long time = dNow.getTime();
 document.setNombre(time + fichero.getName());
 document.setContenido(FileUtils.readFileToByteArray(fichero));
 document.setTipoDocumental("cmis:document");
 List<Metadato> listaMetadatos = new ArrayList<Metadato>();
  
 TipoMetadato tipoO = new TipoMetadato();
 tipoO.setPrefijo("amap");
 tipoO.setNombre("doc_organo");
 tipoO.setObligatorio(false);
 tipoO.setAspecto(true);
 Metadato metadatoO = new Metadato();
 metadatoO.setTipoMetadato(tipoO);
 metadatoO.setValor("A06002853");
 listaMetadatos.add(metadatoO);
 
 TipoMetadato tipoE = new TipoMetadato();
 tipoE.setPrefijo("amap");
 tipoE.setNombre("doc_estadoElaboracion");
 tipoE.setObligatorio(false);
 tipoE.setAspecto(true);
 Metadato metadatoE = new Metadato();
 metadatoE.setTipoMetadato(tipoE);
 metadatoE.setValor("EE03");
 listaMetadatos.add(metadatoE);
 
 TipoMetadato tipoT = new TipoMetadato();
 tipoT.setPrefijo("amap");
 tipoT.setNombre("doc_tipoDocumental");
 tipoT.setObligatorio(false);
 tipoT.setAspecto(true);
 Metadato metadatoT = new Metadato();
 metadatoT.setTipoMetadato(tipoT);
 metadatoT.setValor("TD99");
 listaMetadatos.add(metadatoT);
 
 TipoMetadato tipoN = new TipoMetadato();
 tipoN.setPrefijo("amap");
 tipoN.setNombre("doc_nombreFormato");
 tipoN.setObligatorio(false);
 tipoN.setAspecto(true);
 Metadato metadatoN = new Metadato();
 metadatoN.setTipoMetadato(tipoN);
 metadatoN.setValor("pdf");
 listaMetadatos.add(metadatoN);
 
 TipoMetadato tipoV = new TipoMetadato();
 tipoV.setPrefijo("amap");
 tipoV.setNombre("doc_versionNTI");
 tipoV.setObligatorio(false);
 tipoV.setAspecto(true);
 Metadato metadatoV = new Metadato();
 metadatoV.setTipoMetadato(tipoV);
 metadatoV.setValor("http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e");
 listaMetadatos.add(metadatoV);
 
 TipoMetadato tipoF = new TipoMetadato();
 tipoF.setPrefijo("amap");
 tipoF.setNombre("doc_fechaCaptura");
 tipoF.setObligatorio(false);
 tipoF.setAspecto(true);
 Metadato metadatoF = new Metadato();
 metadatoF.setTipoMetadato(tipoF);
 metadatoF.setValor(DateAdapter.getStringToXMLGregorianCalendar("19/01/2018 12:00"));
 listaMetadatos.add(metadatoF);

 TipoMetadato tipo = new TipoMetadato();
 tipo.setPrefijo("amap");
 tipo.setNombre("identificadorDocElectronico");
 tipo.setObligatorio(false);
 tipo.setAspecto(true);
 Metadato metadato = new Metadato();
 metadato.setTipoMetadato(tipo);
 metadato.setValor("ES_A06002853_2018_DOC_00N_000000000000000000018");
 listaMetadatos.add(metadato);

 TipoMetadato tipo2 = new TipoMetadato();
 tipo2.setPrefijo("amap");
 tipo2.setNombre("validezDocumento");
 tipo2.setObligatorio(false);
 tipo2.setAspecto(true);
 Metadato metadatoValidez = new Metadato();

 metadatoValidez.setTipoMetadato(tipo2);
 metadatoValidez.setValor(ValidezEnum.COPIA_ELECTRONICA_AUTENTICA);

 listaMetadatos.add(metadatoValidez);

 document.setMetadatos(listaMetadatos);
 
 DatosConfiguracionPie datosPie = new DatosConfiguracionPie();
 datosPie.setUrlVerificacionFirma(URL);
 datosPie.setNumPaginas(true);
 datosPie.setCodigoQR(true);
 datosPie.setUrlLink(true);
 datosPie.setTipoCajetin(TipoCajetin.CAJETIN_DOC_ENI);
 
 String aplicacion = "ID-DOC-ALFRESCO";
 InfoCSV inform = new InfoCSV();
 inform.setAplicacionCsv(aplicacion);
 inform.setClave(clave);
 inform.setDiccionario(diccionario);
 
 String certificado = ALIAS_CERTIFICADO;
 String aplicacionFirma = "NOM-APLIC-FIRMA";

 AmapFirmaServiceInterface amapFirmaService;
 amapFirmaService = AmapFirmaServiceFactory.getService(URL_FIRMA_BASE, IMPLEMENTACION_FIRMA, TIMEOUT_FIRMA, IDAPLICACION);

 ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, amapFirmaService, aplicacionFirma, inform, certificado );
 DocumentoCSV documento = servicioPDFCSV.createDocumento(document, CARPETA_DESTINO, TipoFirma.PADES_BASICO, datosPie, inform, registro, false);

Esté método soporta la antigua implementación de amap-firma (versiones anteriores a 3.3.0)

 FirmaFacade servicioFirma = new FirmaFacade(urlFirma+"/UtilsFirma", "httpclient");
 ServicioCSVInterface servicioPDFCSV = ServicioCSVFactory.getServicio(servicioGestorDocumental, servicioFirma, aplicacionFirma, inform, certificado );
  • Si se quiere añadir la informacion de registro

DatosRegistro registro = new DatosRegistro();
registro.setSalFecha("14/06/2017 00:00");
registro.setSalNumeroRegistro("xxxxxxxxxxxxxxxx");
registro.setSalUnidadRegistro("xxxxxxxxxxxxxxxxxxxxxx");
registro.setSalCodigoOficina("xxxxx");
registro.setEntFecha("14/06/2017 00:00");
registro.setEntNumeroRegistro("xxxxxxxxxxxxxxxx");
registro.setEntUnidadRegistro("xxxxxxxxxxxxxxxxxxxxxx");
registro.setEntCodigoOficina("xxxxx");
datosPie.setTipoCajetinRegistro(TipoSelloRegistro.CAJETIN_DEFECTO); CAJETIN_SIMPLIFICADO

  • Si se quiere añadir la informacion de registro

DatosSelloTiempo datosSello = new DatosSelloTiempo();
datosSello.setFecha("18/05/2018 12:52:21.571");
datosSello.setEmisor("Sello de tiempo TS@ - @firma");
datosSello.setAlgoritmo("SHA1");
documento.setDatosSello(datosSello);

Generar Referencia Documental

Se generará InfoReferenciaDocumetal  que contendrá el código de referencia y la url.

long fechaCreacion;
String uuid;
String aplicacion;
String descripcion;
String tipoDocumento;
String identificadorAppReferencia;
DatosReferenciaDocumental datosReferenciaDocumental = DatosReferenciaDocumentalFactory.create(
                                  aplicacion, uuid, fechaCreacion, descripcion, tipoDocumento, identificadorAppReferencia);

InfoReferenciaDocumental infoReferenciaDocumental = servicioGenerador.getInfoReferenciaDocumental(datosReferenciaDocumental);
Etiquetas: CSV
Creado por Administrator el 2016/11/29 17:18
© 2014 GOBIERNO DE CANTABRIA - AVISO LEGAL Y PROTECCIÓN DE DATOS