Sobre este documento
Este documento tiene el objetivo de describir técnicamente la configuración de la solución ecoSignature Java Web Start (JWS de ahora en adelante) Desktop (en escritorio) desarrollada por edatalia.
El documento muestra
- los requirimientos mínimos de funcionamiento.
- Las características del producto.
- La instalación del producto.
- La configuración general de la solución, a través de un fichero de texto de configuración de parámetros denominado ecoSignature.ini, donde se describen todas las posibles opciones de configuración, englobadas en secciónes que permiten adecuar el comportamiento de la solución.
Introducción
Requerimientos
- puesto cliente: PC de eFirma
- Dispositivos hardware para captura biométrica: Wacom STU (430, 520, 530, 540), Wacom DTU (1031, 1141 (solo Windows)) y Pencil-Stylus (solo Windows).
- Puesto PC:
- Sistema operativo Windows 7 o superior.
- Sistema operativo Linux Ubuntu 14.04 32 ó 64 bits o superior. (Recomendable 16.04+ 64 bits).
- Java 1.7+.
- Recomendamos instalación de drivers Wacom desde el siguiente enlace.
Nota
Para el correcto funcionamiento de la solución, para tabletas STU y DTU es necesario instalar los correspondientes drivers de Wacom.
Características del producto
La solución ecoSignature JWS Desktop cuenta con una amplia colección de opciones de configuración que le aportan gran flexibilidad y le permiten ajustarse a cualquier flujo de trabajo:
- Permite el firmado en PC local de cualquier documento pdf.
- Más de 100 parámetros configurables para realizar el firmado.
- Necesidad de licenciamiento para su uso.
- Posibilidad de trabajar con el documento pdf en binario o en base 64.
- Visualización del documento a firmar y del documento firmado.
- Introducción de n firmas en un documento a través de interface (Datasheet).
- Firmado de documentos de gran tamaño (el caso de uso permite hasta un tamaño de 100 Mb (en binario). El límite de tamaño del documento pdf a firmar es configuración de la máquina virtual de java (JVM).
- En base 64 la limitación la impone la tecnología JNLP (Java Network Launching Protocol) y es de 1Mb para el fichero generado. (Tamaño del pdf binario aproximadamente de tamaño máximo de 750Kb).
- Firmado en diferentes dispositivos de captura biométrica como tabletas Wacom o Pencil-Stylus sobre dispositivos Windows.
- Se permite firmar con el ratón. De esta forma se puede probar la funcionalidad sin necesidad de tabletas específicas.
- Se permiten dos tipos de firmado:
- Firma digital manuscrita.
- Firma digital convencional, mediante certificado electrónico, sin captura de rúbrica.
- Firma digital manuscrita.
- Por defecto, la firma se realiza mediante un certificado embebido en el propio JWS. En una instalación real se recomendaría introducir un certificado de la Entidad.
- El documento es firmado electrónicamente, en ambos tipos de firmado, mediante certificado (en software o hardware). Sigue el estándar PAdES, desde básico hasta firma longeva PAdES- XL.
- Sellado de tiempo en el momento de la firma.
- Validación del estado de revocación del certificado en el momento de la firma.
- Sellado de tiempo en el momento de la firma.
- Produce firmas digitales con algoritmo de resumen (hash) SHA2-512.
- Configuración de certificados de firma y cifrado de datos (archivo estático o en base 64).
- Posibilidad de firmado con un certificado local (instalado en CryptoAPI en Windows).
- Posibilidad de certificar la firma.
- Posibilidad de firmar documentos pdf con contraseña.
- Personalización de la ventana de captura de firma de ecoSignature JWS en el PC.
- Segunda ventana de captura de firma opcional para modo multimonitor.
- Configuración y personalización de plantillas (denominadas EBP’s), a nivel de PC y de tableta, para presentación de datos al usuario antes del firmado.
- Comunicación entre ecoSignature JWS y plantillas EBP’s mediante variables configurables.
- Configuración de la dimensión de la rúbrica.
- Configuración de ubicación de la rúbrica. Se presentan tres tipos de posicionamiento:
- Posicionamiento manual: solo para integraciones con previsualización de documentos a firmar. El usuario puede mover/trasladar y redimensionar el widget o ventana de firma por la página del documento pdf.
- Posicionamiento fijo: definición de posición de coordenadas X e Y fija y del número de página de la firma en el documento pdf, cuando sabemos el lugar concreto en el que queremos que se firme.
- Posicionamiento flotante: definición de posición del widget por búsqueda de una cadena de caracteres, pudiendo introducirse un desfase en las coordenadas X e Y.
- Posicionamiento manual: solo para integraciones con previsualización de documentos a firmar. El usuario puede mover/trasladar y redimensionar el widget o ventana de firma por la página del documento pdf.
- Posicionamiento en campos vacíos predefinidos.
- Introducción de texto personalizado en la rúbrica.
- Descarga y ejecución en local del documento pdf firmado.
- Descarga de JPG del grafo en local del documento pdf firmado.
- Integración con Virtual Channel Citrix (en Windows).
- Validación de documento firmado.
- Posibilidad de lanzamiento externo de la solución desde otras aplicaciones.
Entrega
La solución ecoSignature JWS Desktop se entrega en un fichero zip (Windows) o tar.gz (Linux) en el siguiente enlace.
Instalación
SO Windows
Para la instalación de la solución ecoSignature JWS Desktop en un entorno Windows se deben realizar los siguientes pasos:
- Descomprimir el archivo .zip entregado.
Dentro de la carpeta “ecoSignatureJWS” podemos observar los siguientes ficheros, estructurados de la siguiente forma:
- módulo de aplicación: contiene los ficheros de lanzamiento de la solución, de configuración y de log, este último optativo.
- módulo de aplicación: contiene los ficheros de lanzamiento de la solución, de configuración y de log, este último optativo.
- ecoSignatureJWS_Desktop.exe: fichero de lanzamiento de la solución.
- ecoSignatureJWS.ini: fichero de configuración de la solución.
- ecoSignatureJWS_Desktop.exe: fichero de lanzamiento de la solución.
Nota
El fichero ecoSignatureJWS.ini presenta una configuración por defecto para poder lanzar un proceso de firmado sin necesidad de saber configurar la solución.
- log4jJWS_ejemplo.properties: fichero de configuración de log para usuarios avanzados. Se comenta posteriormente.
- carpeta “config”: carpeta de configuración para introducción de todo tipo de ficheros relacionados/necesarios para una personalización de un proceso de firmado (plantillas de firmado o ebp’s, ficheros de configuración .ini, ficheros de configuración de interface,…..).
- carpeta “log”: donde se genera el log de la solución.
- carpeta “Documentación técnica”: contiene a su vez:
- carpeta “Configuraciones completas”: contiene las configuraciones completas de los ficheros de configuración por defecto y de los ficheros asociados con el datasheet o panel del terminalista.
- documentación de la solución.
- carpeta “Configuraciones completas”: contiene las configuraciones completas de los ficheros de configuración por defecto y de los ficheros asociados con el datasheet o panel del terminalista.
- log4jJWS_ejemplo.properties: fichero de configuración de log para usuarios avanzados. Se comenta posteriormente.
- módulo de firmado: contiene todo lo relacionado con el firmado.
- carpeta “ecobiometricJWS”: ficheros .jar y librerías de firmado.
- carpeta “ecobiometricJWS”: ficheros .jar y librerías de firmado.
- módulo de ejemplo: contiene todo lo relacionado con el lanzamiento de ejemplos de la solución.
- carpeta “ejemplos”: contiene a su vez:
- carpeta “datasheet”: ejemplos de configuración para el lanzamiento de la solución en modo datasheet o panel del terminalista a través de dispositivos de captura biométrica STU y DTU.
- carpeta “ejemplos”: contiene a su vez:
Nota
Sobrescribir el fichero ecoSignatureJWS.ini de la raíz para el lanzamiento de datasheet.
- carpeta “pdf”: contiene documentos ejemplo para firmado.
- carpeta “Firmados”: donde se dejan los documentos firmados.
- carpeta “pdf”: contiene documentos ejemplo para firmado.
Si se desea ejecutar inicialmente la solución con la configuración por defecto, ejecutar el archivo ecoSignatureJWS_Desktop.exe.
- Copiar carpeta “ecoSignatureJWS” en la ruta “C:/”.
SO LINUX
Para la instalación de la solución ecoSignature JWS Desktop en un entorno Linux se deben realizar los siguientes pasos:
- Descomprimir el archivo .tar.gz entregado.
Dentro de la carpeta “ecoSignatureJWS” podemos observar los siguientes ficheros, estructurados de la siguiente forma:
- módulo de aplicación: contiene los archivo de lanzamiento de la solución, de configuración y de log, este último optativo.
- ecoSignatureJWS_Desktop.sh: archivo de lanzamiento de la solución.
- módulo de aplicación: contiene los archivo de lanzamiento de la solución, de configuración y de log, este último optativo.
Nota
Modificar la segunda línea, introduciendo el usuario correspondiente:
cd /home/[user]/ecoSignatureJWS
- ecoSignatureJWS_Desktop.jar: jar de la solución invocado en el archivo de lanzamiento anterior.
Nota
Se puede lanzar la solución a través de este archivo.
- ecoSignatureJWS.ini y ecoSignatureJWS_completo.ini: archivos de configuración de la solución.
Nota
El archivo ecoSignatureJWS.ini presenta una configuración por defecto para poder lanzar un proceso de firmado sin necesidad de saber configurar la solución.
- log4jJWS_ejemplo.properties: archivo de configuración de log para usuarios avanzados. Se comenta posteriormente.
- log4jJWS_ejemplo.properties: archivo de configuración de log para usuarios avanzados. Se comenta posteriormente.
- módulo de firmado: contiene todo lo relacionado con el firmado.
- carpeta “ecobiometricJWS”: ficheros .jar y librerías de firmado.
- ecoSignatureJWS.pdf: documento ejemplo de firmado.
- archivos .ebp: plantillas de firmado de ejemplo de la aplicación.
- carpeta “ecobiometricJWS”: ficheros .jar y librerías de firmado.
- Copiar carpeta “ecoSignatureJWS” en la ruta “home/[user]/”, modificando el usuario correspondiente.
- Si se desea ejecutar inicialmente la solución con la configuración por defecto, ejecutar el archivo ecoSignatureJWS_Desktop.sh o en su defecto el archivo jar ecoSignatureJWS_Desktop.jar.
Nota
IMPORTANTE: Modificar en el archivo de configuración ecoSignatureJWS.ini en el parámetro saveInLocalPath=/home/[user]/ecoSignatureJWS/Firmados/ por el usuario correspondiente antes de lanzar la solución.
Requirimientos SO Linux
El firmado con ecoSignature JWS Desktop en Linux presenta unos requerimientos mínimos de instalación. Para la correcta instalación seguir los pasos descritos en las secciones “Instalación del JRE de Oracle” y de “Instalación del entorno Wacom” del siguiente documento.
Nota
Para ambos sistemas operativos, una vez que se tenga soltura con la configuración de los parámetros de la solución se puede presentar otra arquitectura o distribución de los dos módulos presentados anteriormente (módulos de aplicación y de firmado), los cuales pueden estar definidos en diferentes directorios.
Nota
IMPORTANTE: La solución ecoSignature JWS Desktop inicialmente levanta un web socket en local por defecto en el puerto 8181 para el proceso de firmado. Asegúrese de que dicho puerto no se encuentre ocupado. Se puede configurar un web socket externo, como su host y puerto o el puerto del web socket interno en el archivo de configuración. (Ver Parámetros de configuración).
Configuración general
La configuración general de la solución se realiza a través del fichero de configuración ecoSignatureJWS.ini, el cual por defecto se debe encontrar en la carpeta donde se encuentra el .exe de lanzamiento.
Se puede invocar a ecoSignature JWS Desktop con el fichero de configuración por defecto y/o seleccionando otro fichero de configuración pasado como parámetro.
Todas las opciones que podemos modificar de la solución se encuentran en el fichero ecoSignatureJWS_completo.ini. A continuación se presentan todos los parámetros configurables a través de este archivo.
Parámetros de configuración
El firmado con ecoSignature JWS Desktop necesita la configuración de una serie de parámetros para adecuarlo a cada escenario específico en el que se desee implementar. A continuación se muestran los diferentes parámetros de configuración con los que contamos para realizar un proceso de firmado.
Estos parámetros se dividen en dos grupos:
- Parámetros generales de la solución.
- Parámetros de configuración de firma (parámetros JNLP): Los parámetros JNLP son los que parametrizan un proceso de firmado.
Para parámetros con url como “remotePdf-url”, “pfx-url”, “ebp-url“, “ebp-initial-url“,… ésta se puede pasar como:
- ruta absoluta: “file:/ruta”
Ejemplo:remotePdf-url=file:/C:/ecoSignatureJWS/ecoSignatureJWS.pdf
(Windows)remotePdf-url=file:/home/[user]/ecoSignatureJWS/ecoSignatureJWS.pdf
(Linux)
- ruta relativa desde donde se encuentra el archivo ecobiometric.jar.
Ejemplo:ebp-url=../edatalia_initial.ebp
No aplica a los parámetros tsp-url
y ocsp-url
, éstos tienen una estructura de http://….
Los parámetros signatures-input-xml
e interface-window
permiten direccionamiento:
- absoluto: “file:/ruta”
Ejemplo:signatures-input-xml=file:/C:/ecoSignatureJWS/datasheet.xml
(Windows)interface-window=file:/home/[user]/ecoSignatureJWS/datasheet.ini
(Linux)
- relativo: desde donde se encuentra el .exe de la solución.
Ejemplo:interface-window=datasheet.ini
Parámetros generales de la solución
Param Name | Valor | Valor por defecto | Comportamiento |
path-ecoSignatureJWS | String | Ruta del .exe | Ruta absoluta de despliegue del módulo de firmado ecoSignature JWS. |
alwaysOnTop | Booleano | 1 | ecoSignatureJWS Desktop siempre visible en pantalla. |
justOneLock | Booleano | 1 | Solo permitir la ejecución de una instancia de la solución. |
showAlert | Booleano | 1 | Mostrar alertas en la solución. |
showEvents | Booleano | 0 | Visualización de la ventana de eventos. |
toast | Booleano | 1 | Visualización de ayuda. |
Documento | Documento de la aplicación | ||
showPDF | Booleano | 0 | Visualización de documento antes de ser firmado. |
showPDFMonitorNum | Entero | 0 | Número de monitor donde se visualiza el documento antes de ser firmado. |
showPDFSigned | Booleano | 0 | Visualización de documento después de ser firmado. |
showPDFSignedMonitorNum | Entero | 0 | Número de monitor donde se visualiza el documento después de ser firmado. |
fullScreen | Booleano | Windows = 1 y Linux = 0 | Visualización en modo full screen. Solo aplica con showPDF o showPDFSigned activados. |
zoom | Entero | Ancho del documento | Zoom inicial del documento a firmar. Rango [50%-400%]. Solo aplica con showPDF o showPDFSigned activados. |
Web Socket | Web socket de conexión de la aplicación | ||
externalWebSocket | Booleano | 0 | Conexión a web socket externo. |
externalWebSocket-url | String | Url de conexión externa. Solo aplica para externalWebSocket activado. | |
portWebSocket | Entero | 8181 | Puerto del web socket. Solo aplica para externalWebSocket desactivado. |
Log | Log de la aplicación | ||
log-activate | Booleano | 0 | Activación de log. |
log-file | String | Ruta del .exe/ ecoSignatureJWS.log | Ruta absoluta de log de la solución. |
levelLog | String | INFO | Nivel de log de la solución. |
Datasheet o Panel de Terminalista | |||
signatures-input-xml-b64 | String | Entrada de firmantes a través de xml en Base64. | |
signatures-input-xml | String | Entrada de firmantes a través de xml. | |
interface-window | String | Archivo de configuración de panel de terminalista (interface). |
La generación de log se realiza a través de Log4j que es una biblioteca open source desarrollada en Java por la Apache Software Foundation que permite a los desarrolladores de software escribir mensajes de registro, cuyo propósito es dejar constancia de una determinada transacción en tiempo de ejecución. Log4j permite filtrar los mensajes en función de su importancia. La configuración de salida y granularidad de los mensajes es realizada en tiempo de ejecución mediante el uso de archivos de configuración externos.
Se presentan los siguientes niveles de log (parámetro “levelLog”):
- TRACE: Se usa para información más detallada que el nivel debug.
- DEBUG: Se utiliza para mensajes de información detallada que son útiles para depuración de la aplicación.
- INFO: Se utiliza para mensajes de información que resaltan el progreso de la aplicación de una forma general.
- WARN: Se utiliza para situaciones de aviso.
- ERROR: Se usa para eventos de error.
- FATAL: Se usa para errores muy graves
Cuando se activa el panel de terminalista no se tienen en cuenta los parámetros:
- alwaysOnTop
- showAlert
- toast
- showPDF
- showPDFMonitorNum
- showPDFSigned
- showPDFSignedMonitorNum
- fullScreen
- zoom
Además se anulan los valores que presenten los parámetros JNLP:
- Pdf-Content
- remotePdf-url
- pdfPassword
- certificatePDF
- saveInLocalPath
- saveInLocalName
- executeInLocal
Nota
Los parámetros "log-activate", "log-file" y "levelLog" no se tienen en cuenta si tenemos un archivo de configuración de log's llamado "log4jJWS.properties" en la ruta donde se encuentre el .exe de la solución.
Parámetros JNLP (Configuración de firma)
A continuación se describen los parámetros de configuración de firma (parámetros JNLP).
Entradas y salidas del documento PDF
Param Name | Valor | Valor por defecto | Comportamiento |
Pdf-Content | PDF en B64 | Documento PDF a firmar en B64. | |
remotePdf-url | test.pdf | URL de entrada de donde se coge el PDF.Si se informa Pdf-Content, este parámetro remotePdf-url no se tiene en cuenta. | |
widget-Textcustom | String | Texto custom del widget en B64. | |
author | String | Autor de la firma (propiedad de un pdf firmado). | |
reason | String | Razón de la firma (propiedad de un pdf firmado). | |
contact | String | Info de contacto de la firma (propiedad de un pdf firmado). | |
location | String | Info de localización de la firma (propiedad de un pdf firmado). | |
pdfPassword | String | Contraseña del documento PDF de entrada si la tiene. |
Certificados de firma y cifrado
El certificado de firma y de encriptación se pueden informar de varias formas. Por defecto, se utilizarían los certificados embebidos en el JWS. También se puede informar de la ubicación del fichero físico.En el caso del certificado de firma electrónica, también se puede obtener del almacén estándar de certificados de Windows (CryptoAPI).
Param Name | Valor | Valor por defecto | Comportamiento |
cert-origin | Booleano | 0 | Si se activa (1) buscará el certificado en el almacén interno de windows (CryptoAPI).No aplica en Linux. |
cert-origin-ca | – | Permite identificar la CA del certificado desde el CryptoAPI.Sólo funciona si cert-origin=1.No aplica en Linux. | |
pfx-b64 | Base64 del contenido del PFX | – | Permite informar el certificado de firma. |
pfx-url | – | Es la url al fichero pfx si no se usa “pfx-b64” ni otros orígenes de certificados. | |
pfx-pw | En Base64 | – | Password para activar el certificado. |
Chain-CA-b64 | En Base64 | Cadena de validación completa del certificado. | |
enc-key-b64 | Base64 del contenido del .cer | Clave pública del cert de encriptación(el cifrado no requiere pss). | |
certificatePDF | Booleano | Firma PDF Certificada (MDP). | |
TIME STAMP | Sellado de tiempo en el momento de la firma | ||
tsp-activate | Booleano | 0 | Si se activa (1) activa la consulta TSP. |
tsp-url | |||
tsp-user | |||
tsp-password | |||
OCSP | Validación del estado de revocación del certificado en el momento de la firma | ||
ocsp-activate | Booleano | 0 | Si se activa (1) activa la consulta OCSP. |
ocsp-url | |||
ocsp-user | |||
ocsp-password | |||
setValidateErrorContinue | Booleano | 0 | Si se activa (1) la firma no se para aunque haya un error de validación OCSP |
bufferLTV | Entero | 0 | Tamaño en Bytes de reserva en caso de querer realizar un PAdES-LTV (TSP+OCSP). Debe dejarse un 2x de la cantidad estimada. Típicamente con 100000 funciona. |
Nota
Si está activada la validación del estado de revocación del certificado en el momento de la firma y no se ha introducido la URL del OCSP, se toma automáticamente en la comprobación la URL del OCSP del certificado.
Ubicación del área de firma en el documento
Los siguientes parámetros permiten configurar el tamaño del área de firma y ubicarlo en el documento PDF.
Param Name | Valor | Valor por defecto | Comportamiento |
Ubicación fija del área de firma | El JWS ubica la firma en una página y coordenadas determinadas | ||
widget-Page | Entero | 1 | 0 la firma se muestra en todas las páginas. Si cualquier otro número, indicaría el número de página. 4 la firma se muestra en la página 4 9999 un número suficientemente grande puede servir para indicar la última página del documento. |
widget-X | Entero | 0 | Desplazamiento del widget en horizontal, desde el vértice inferior izquierdo del documento PDF. |
widget-Y | Entero | 0 | Desplazamiento del widget en vertical, desde el vértice inferior izquierdo del documento PDF. Un documento PDF estándar, tamaño DIN-A4, tiene una altura de 842 puntos. |
widget-Transparent-activate | Booleano | 1 | Widget transparente o no. |
Ubicación relativa a cadena de caracteres | El JWS busca una frase en el documento y ubica la firma en relación al primer carácter. Por ejemplo “Firmado por:” | ||
widget-autoPos-activate | Booleano | 0 | Si se activa (1) el JWS busca una cadena de caracteres para ubicar la firma |
widget-autoPos-text | String | Texto a buscar. La firma se ubica de forma relativa al primer carácter. Por ejemplo “Firmado por:”. | |
widget-autoPos-desfaseX | Entero | 0 | Desplazamiento relativo en horizontal. |
widget-autoPos-desfaseY | Entero | 0 | Desplazamiento relativo en vertical. |
Tamaño del área de firma | Atención: de cara a mantener la proporcionalidad de los trazados de la rúbrica, es muy relevante mantener el ratio de aspecto del área de firma en el EBP | ||
widget-Ancho | Entero | 120 | Ancho del widget. |
widget-Alto | Entero | 30 | Alto del widget. |
Ubicación en campo vacío de firma | |||
PDFEmptySig_enable | Booleano | 0 | Activación de posicionamiento en campo vacío de firma. |
PDFEmptySig_fieldname | String | Nombre de campo de firma. |
IMPORTANTE: Una vez configurados los parámetros de firmado, el posicionamiento del widget de firma depende de si se ha optado por la visualización del documento a firmar o no (activación de parámetro showPDF
):
- Si
showPDF=1
:- Si
widget-autoPos-activate=1
se producirá la activación de posicionamiento flotante. Búsqueda de texto introducido en el parámetro widget-autoPos-text. A tener en cuenta:- Si no se encuentra el texto seleccionado se activa el posicionamiento manual.
- Si se ha encontrado el texto seleccionado y el widget no se encuentra dentro de las coordenadas de la página del documento se activa el posicionamiento manual.
- Si no se encuentra el texto seleccionado se activa el posicionamiento manual.
- Si
widget-Page
owidget-X
owidget-Y
presentan algún valor se producirá la activación de posicionamiento fijo. A tener en cuenta:- Si el widget no se encuentra dentro de las coordenadas de la página del documento se activa el posicionamiento manual.
- Si el widget no se encuentra dentro de las coordenadas de la página del documento se activa el posicionamiento manual.
- En caso contrario, es decir, si no se presenta posicionamiento flotante ni fijo se utilizará la activación de posicionamiento manual.
- Si
Los parámetros widget-Acho
, widget-Alto
, widget-Page
, widget-X
, widget-Y
, widget-autoPos-desfaseX
y widget-autoPos-desfaseY
presentan valores por defecto si no han sido pasados por configuración y son necesarios para el posicionamiento.
- Si
showPDF=0
:
¿Qué ocurre si no encuentra la cadena?
Si la cadena de caracteres especificada no se encuentra por algún motivo se usan los parámetros X,Y por defecto del widget especificados por parámetros del JWS.
Si se encuentra la secuencia, en la consola de Java aparecería: “FOUND text for auto widget positioning”.
Nota
El posicionamiento en campo vacío de firma solo aplica al datasheet o panel del terminalista
En el uso de datasheet o panel del terminalista, el orden de posicionamiento en dependencia con la configuración, es el siguiente:
- Posicionamiento en campo vacío de firma.
- Posicionamiento flotante o por búsqueda de texto.
- Posicionamiento fijo.
Dispositivo de captura biométrica
La firma manuscrita se puede recoger de una tableta Wacom STU o bien desde la propia pantalla del PC (dispositivos con pantalla táctil).
Estos parámetros nos permiten seleccionar el tipo de tableta con la que estamos trabajando y configurar el comportamiento del dispositivo de captura de datos biométricos.
Param Name | Valor | Valor por defecto | Comportamiento |
Modo mouse | Nos permite probar la funcionalidad del JWS sin necesidad de tabletas de captura biométrica. Recabar la firma desde la pantalla de dispositivos con pantalla táctil. | ||
mouseMode | Booleano | 0 | Si se activa, la firma se recoge desde el monitor del dispositivo.No requiere tableta de firma (Wacom/Stylus). |
mouseSpeed | Booleano | 0 | Permite configurar la presión relativa a la velocidad. |
typeTablet | Entero | 0 | Tipo de dispositivo de captura biométrica:0: tabletas STU en color STU-520,STU-530.1: tabletas STU monocromo STU-430.2: Stylus (No aplica en Linux). Aplica a tabletas con SO Windows y Wacom DTU. |
Min_Points | Entero | 100 | Mínimo de puntos para que se acepte la firma, si se deja a 0 acepta firmas sin puntos.Las tabletas Wacom capturan 200 puntos por segundo |
max-sig-time | Entero | 60 | Segundos por defecto máximo para aceptación de la firma (recomendable no cambiarlo). |
Empleo de plantillas EBP | Las plantillas EBP permiten definir la visualización de la tableta | ||
ebp-activate | Booleano | 1 | Activa el uso de plantilla. |
ebp-use-internal | Booleano | 0 | Utiliza el EBP embebido en el JWS |
ebp-url | si ebp-use-internal está a 0, url de donde se coge el EBP. | ||
showEBP | Booleano | 1 | 1: Muestra al operador, en la pantalla del PC, lo que se está visualizando en la tableta Wacom. |
noButtonEBP | Booleano | 0 | si showEBP=1, elige si se muestran los botones de la plantilla EBP (0) o si se ocultan (1).Recomendado a 1 ya que los botones van en el HTML y no en el JWS. |
ebp-variables | String | Variables a mostrar en la plantilla EBP.ATENCIÓN: el valor de estas variables se guardan junto a la información biométrica de la firma.Es muy relevante que estos valores se asocien de forma unívoca al acto de firma (el contenido del documento). | |
STUBackLight | Entero | -1 | Solo para dispositivos Wacom STU.0 (mínima intensidad) a 3 (máxima intensidad).Valor por defecto -1 (no cambia el brillo). |
driver430Installed | Booleano | 1 | Parámetro por defecto a verdadero (1). Si se pone desactivado (0), se supondrá que no existen los drivers de la Wacom STU430 instalados en el ordenador local, y se usará una estrategia de inicialización especial para que no se produzcan “parpadeos” en la inicialización de la STU430. |
ebp-initial-activate | Booleano | 0 | Activar o no (por defecto) el uso de la pantalla inicial.Se trata de una pantalla que puede mostrar un texto previo a la pantalla donde se recoge la firma. |
ebp-initial-url | String | La url del EBP a usar para pantalla inicial, éste EBP al menos ha de contener 1 área marcada como botón aceptar. Se recomienda un botón para cancelar. | |
ebp-initial-variables | String | Las variables que se le pasan al EBP inicial, y también serán incluidas con la información biométrica cifrada. Por ejemplo para poner un texto de LOPD. |
Modo solo firma biométrica
El JWS permite realizar la firma electrónica del documento sin asociarlo a una firma manuscrita. Sería la firma electrónica convencional basada en certificado digital
Param Name | Valor | Valor por defecto | Comportamiento |
jsigMode | Booleano | 0 | Si se activa (1), sólo se realiza firma usando el certificado digital, desactivado (0) se usa la firma biométrica. |
jsigJPG | JPEG en BASE64 | Permite pasar un JPEG como imagen para la firma digital del PDF |
Específicos de JWS
A continuación se describen los parámetros relacionados con la edición de la aplicación JWS:
Param Name | Valor | Valor por defecto | Comportamiento |
jwsWidth | Entero | Anchura en píxeles de la ventana de la aplicación. | |
jwsHeight | Entero | Altura en píxeles de la ventana de la aplicación. | |
jwsTxtBtnReset | String | Texto en el botón de reinicio de la aplicación. | |
jwsTxtBtnCancel | String | Texto en el botón de cancelación de la aplicación. | |
jwsTxtBtnSgn | String | Texto en el botón de firma de la aplicación. | |
jwsBtnReset | Booleano | 1 | Visibilidad de botón de reinicio de la aplicación. |
jwsBtnCancel | Booleano | 1 | Visibilidad de botón de cancelación de la aplicación. |
jwsBtnSgn | Booleano | 1 | Visibilidad de botón de firma de la aplicación. |
jwsBtnResetImage | String | Imagen en botón de reinicio de aplicación. | |
jwsBtnResetImageRollover | String | Imagen en botón de reinicio de aplicación (mouse over). | |
jwsBtnCancelImage | String | Imagen en botón de cancelación de la aplicación. | |
jwsBtnCancelImageRollover | String | Imagen en botón de cancelación de la aplicación (mouse over). | |
jwsBtnSignImage | String | Imagen en botón de firma de la aplicación. | |
jwsBtnSignImageRollover | String | Imagen en botón de firma de la aplicación (mouse over). | |
jwsComment | Boolean | 0 | Activación de comentarios de la aplicación. |
jwsTxtLblComment | String | Label de comentarios. | |
jwsTxtComment | String | Posibles comentarios predefinidos separados por “;”. | |
jwsPosX | Entero | Centrado | Coordenada X de inicio de la aplicación en pantalla. |
jwsPosY | Entero | Centrado | Coordenada Y de inicio de la aplicación en pantalla. |
jwsForzarNumMonitor | Entero | 0 | Número de monitor donde se muestra el JWS. |
jwsShowBorderClose | Booleano | 1 | Si está activo mostrará la ventana de captura de firma con estilo “diálogo” (bordes + cruz para cerrar/cancelar ventana), sino será una ventana sin bordes. |
Eventos de teclado | CTRL+carácter | ||
jwsKeyboardAccept | Entero | 65 (=A) | Evento de teclado en botón de aceptar firma. CTRL+carácter, donde caracter es el valor en decimal del ASCII (carácter). |
jwsKeyboardCancel | Entero | 67 (=C) | Evento de teclado en botón de aceptar firma. CTRL+carácter, donde caracter es el valor en decimal del ASCII (carácter). |
jwsKeyboardReset | Entero | 82 (=R) | Evento de teclado en botón de aceptar firma. CTRL+carácter, donde caracter es el valor en decimal del ASCII (carácter). |
Los parámetros de posicionamiento de la ventana de firma jwsPoxX
y jwsPosY
presentan el siguiente comportamiento:
- Para ambas coordenadas si el valor es -1 o “center” se centra la coordenada en pantalla.
- Para la coordenada X:
- Si el valor es 9999 o “right” la ventana de firma se coloca a la derecha en pantalla.
- Si el valor es 0 o “left” la ventana de firma se coloca a la izquierda en pantalla.
- Cualquier otro valor significa posición absoluta de la ventana de firma establecida por el usuario.
- Si el valor es 9999 o “right” la ventana de firma se coloca a la derecha en pantalla.
- Para la coordenada Y:
- Si el valor es 9999 o “bottom” la ventana de firma se coloca en la parte inferior en pantalla.
- Si el valor es 0 o “top” la ventana de firma se coloca en la parte superior en pantalla.
- Cualquier otro valor significa posición absoluta de la ventana de firma establecida por el usuario.
- Si el valor es 9999 o “bottom” la ventana de firma se coloca en la parte inferior en pantalla.
Los parámetros de dimensión de la ventana de firma jwsWidth
y jwsHeight
presentan valores por defecto, que dependen del tipo de dispositivo de captura biométrica seleccionado:
- Para STU-430: 640 x 400 (typeTablet=1).
- Para STU-530, DTU y Stylus: 800 x 480 (typeTablet=0 ó 2).
El valor decimal del carácter para los eventos de teclado puede obtenerse en www.asciitable.com.
Ventana “Controller”
Estos parámetros controlan la aparición de una segunda ventana copia de la de captura de firma para en casos multimonitor (como las DTU) para que tanto el firmante como el controlador de la firma puedan ver y operar sobre el funcionamiento y/o aceptación de la firma:
Param Name | Valor | Valor por defecto | Comportamiento |
jwsControllerEnable | Booleano | 0 | Activa o desactiva la ventana “controller”. |
jwsControllerShowBorderClose | Booleano | 1 | Si está activo mostrará la ventana controller con estilo “diálogo” (bordes + cruz para cerrar/cancelar ventana), sino será una ventana sin bordes. |
jwsControllerCaption | String | Título de la ventana controller. Solo aplica si jwsControllerShowBorderClose=1. | |
jwsControllerWidth | Entero | Anchura en píxeles de la ventana de la ventana controller. | |
jwsControllerHeight | Entero | Altura en píxeles de la ventana de la ventana controller. | |
jwsControllerTxtBtnReset | String | Reiniciar | Texto en el botón de reinicio de la ventana controller. |
jwsControllerTxtBtnCancel | String | Cancelar | Texto en el botón de cancelación de la ventana controller. |
jwsControllerTxtBtnSign | String | Firmar | Texto en el botón de firma de la ventana controller. |
jwsControllerBtnReset | Booleano | 1 | Visibilidad de botón de reinicio de la ventana controller. |
jwsControllerBtnCancel | Booleano | 1 | Visibilidad de botón de cancelación de la ventana controller. |
jwsControllerBtnSign | Booleano | 1 | Visibilidad de botón de firma de la ventana controller. |
jwsControllerBtnResetImage | String | Imagen en botón de reinicio de la ventana controller . | |
jwsControllerBtnResetImageRollover | String | Imagen en botón de reinicio de la ventana controller (mouse over). | |
jwsControllerBtnCancelImage | String | Imagen en botón de cancelación de la ventana controller. | |
jwsControllerBtnCancelImageRollover | String | Imagen en botón de cancelación de la ventana controller (mouse over). | |
jwsControllerBtnSignImage | String | Imagen en botón de firma de la ventana controller. | |
jwsControllerBtnSignImageRollover | String | Imagen en botón de firma de la ventana controller (mouse over). | |
jwsControllerComment | Boolean | 0 | Activación de comentarios de la ventana controller. |
jwsControllerTxtLblComment | String | Comentario de la firma: | Label de comentarios para la ventana controller. |
jwsControllerTxtComment | String | Posibles comentarios para la ventana controller predefinidos separados por “;”. | |
jwsControllerStayOnTop | Boolean | 0 | Si se activa(1) la ventana controller estará siempre visible en pantalla. |
jwsControllerPosX | Entero | Centrado | Coordenada X de inicio de la ventana controller en pantalla. |
jwsControllerPosY | Entero | Centrado | Coordenada Y de inicio de la ventana controller en pantalla. |
Los parámetros de posicionamiento de la ventana controller de firma jwsControllerPoxX
y jwsControllerPosY
presentan el siguiente comportamiento:
- Para ambas coordenadas si el valor es -1 o “center” se centra la ventana controller de firma en pantalla.
- Para la coordenada X:
- Si el valor es 9999 o “right” la ventana controller de firma se coloca a la derecha en pantalla.
- Si el valor es 0 o “left” la ventana controller de firma se coloca a la izquierda en pantalla.
- Cualquier otro valor significa posición absoluta de la ventana controller de firma establecida por el usuario.
- Si el valor es 9999 o “right” la ventana controller de firma se coloca a la derecha en pantalla.
- Para la coordenada Y:
- Si el valor es 9999 o “bottom” la ventana de firma controller se coloca en la parte inferior en pantalla.
- Si el valor es 0 o “top” la ventana controller de firma se coloca en la parte superior en pantalla.
- Cualquier otro valor significa posición absoluta de la ventana controller de firma establecida por el usuario.
- Si el valor es 9999 o “bottom” la ventana de firma controller se coloca en la parte inferior en pantalla.
Los parámetros de dimensión de la ventana de firma jwsControllerWidth
y jwsControllerHeight
presentan valores por defecto, que dependen del tipo de dispositivo de captura biométrica seleccionado:
- Para STU-430: 640 x 400 (typeTablet=1).
- Para STU-530, DTU y Stylus: 800 x 480 (typeTablet=0 ó 2).
Descarga y ejecución en local del documento firmado
A continuación se describen los parámetros relacionados con la descarga y ejecución en local del documento firmado:
Param Name | Valor | Valor por defecto | Comportamiento |
saveInLocalPath | String | Ruta donde se guarda en local el documento pdf firmado. | |
saveInLocalName | String | JWS_PDF_Signed.pdf | Nombre (incluyendo la extensión .pdf) para el fichero que se va a generar/guardar en local. |
executeInLocal | Booleano | 0 | Ejecuta o no el documento pdf con la aplicación que esté asociada para ello. Solo aplica si showPDFSigned=0. |
Descarga de JPG del grafo en local del documento firmado
A continuación se describen los parámetros relacionados con la descarga de JPG del grafo
en local del documento firmado:
Param Name | Valor | Valor por defecto | Comportamiento |
saveImgInLocal | Booleano | 0 | Guarda el JPG del grafo del documento firmado en local. |
saveImgInLocalPath | String | JWS_Img_Signature.jpg | Ruta donde se guarda en local el JPG del grafo del documento pdf firmado. Solo aplica si saveImgInLocal=1. |
saveImgInLocalName | String | 0 | Nombre (incluyendo la extensión .jpg) para el fichero que se va a generar/guardar en local. Solo aplica si saveImgInLocal=1. |
Otros parámetros
A continuación se describen otros parámetros que pueden ser relevantes.
Param Name | Valor | Valor por defecto | Comportamiento |
checkInstances | Booleano | 1 | Detectar múltiples instancias del JWS. No deben existir varias instancias simultáneas del JWS, con este check si se encuentra una instancia previa del JWS la instancia que está comenzando a iniciarse es automáticamente parada y terminada. |
disabledWMI | Booleano | 0 | Permite desactivar WMI, WMI consigue información del hardware del equipo firmante que incrusta en la firma. Puede desactivar la incrustación de datos WMI con disabledWMI=1. |
StylusSleep | Entero | 40 | milisegundos usando Stylus para el procesado de puntos. NO DEBIERA SER CAMBIADO. |
max_pen | Entero | 5 | Ancho de la línea del grafo para la presión máxima en píxeles. |
time_new_t | Entero | 100 | Milisegundos para detectar un nuevo trazo. NO DEBIERA SER CAMBIADO. |
forceCloseJava | booleano | 0 | Si está activado (=1) fuerza al terminar el JWS la salida de Java, previene problemas en determinados escenarios en los que la máquina virtual de Java se queda colgada. |
license | String | OBLIGATORIO. Licencia necesaria para el correcto funcionamiento de JWS. Le será suministrada por su proveedor. | |
ess-log-file | String | Ruta del log. |
Citrix (solo Windows)
El JWS permite su uso a través de citrix de dispositivos de recogida de firma. STU y Stylus soportados a través de canales virtuales en el ICA Client (debe instalar el .msi que le proporcionará edatalia en los clientes previamente).
Param Name | Valor | Valor por defecto | Comportamiento |
useCitrixVC | Booleano | 0 | Activar o no el uso de canales virtuales. Si no está en un entorno Citrix no active esta opción. |
CitrixVCSleep | Entero | 10 | milisegundos usando Citrix para el procesado de puntos. NO DEBIERA SER CAMBIADO. |
CitrixVCSleepClear | Entero | 1000 | milisegundos usando Citrix para espera a limpiado de pantalla. NO DEBIERA SER CAMBIADO. |
CitrixVCsWnd | Entero | 0 | Usando Citrix + Stylus, tipo de ventana de captura de firma creada en el cliente. Disponibles tipos 0,1,2,3. |
CitrixVCsWnd3X | Entero | 0 | Si CitrixVCsWnd=3, X de la ventana de captura de firma. |
CitrixVCsWnd3Y | Entero | 0 | Si CitrixVCsWnd=3, Y de la ventana de captura de firma. |
CitrixVCsWnd3Width | Entero | 0 | Si CitrixVCsWnd=3, Ancho de la ventana de captura de firma. |
CitrixVCsWnd3Height | Entero | 0 | Si CitrixVCsWnd=3, Alto de la ventana de captura de firma. |
Parámetros mínimos de configuración
El firmado con ecoSignature JWS Desktop necesita la configuración mínima de una serie de parámetros para la realización de un proceso de firmado inicial y básico:
- Si el módulo de firmado no se encuentra en la ruta del .exe de la solución parámetro
path-ecoSignatureJWS
. - Activación de log’s:
- Parámetros
log-activate
,log-file
ylevelLog
. - Mediante archivo de configuración log4jJWS.properties externo.
- Parámetros
- Parámetros generales de configuración del proceso de firma:
- Web socket:
externalWebSocket
,externalWebSocket-url
yportWebSocket
. - Alerta, eventos y ayuda:
showAlert
,showEvents
ytoast
. - Visualización de documento a firmar y firmado:
showPDF
yshowPDFSigned
.
- Web socket:
- Pantalla completa y zoom:
fullScreen
yzoom
. - Licencia: parámetro
license
. - Paso del documento PDF a firmar seleccionado:
- desde ruta local: parámetro
remotePdf-url
. - en Base64: parámetro
Pdf-Content
.
- desde ruta local: parámetro
- Parámetros relacionados con la firma:
author
,reason
,contact
ylocation
. - Tipo de tableta: parámetro
typeTablet
. - Modo de firma con o sin biometría: parámetro
jsigMode
. - Tamaño de widget: parámetros
widget-Ancho
ywidget-Alto
. - Tipo de posicionamiento seleccionado: parámetro
widget-autoPos-activate
:- si
widget-autoPos-activate=0
parámetroswidget-Page
,widget-X
ywidget-Y
. (Posicionamiento fijo). - si
widget-autoPos-activate=1
parámetroswidget-autoPos-text
,widget-autoPos-desfaseX
ywidget-autoPos-desfaseY
. (Posicionamiento por texto).
- si
- Texto personalizado: parámetro
widget-Textcustom
. - Uso de EBP’s: parámetros
ebp-activate
,showEBP
,ebp-use-internal
,ebp-url
yebp-variables
. - Parámetros relacionados con la ventana de firmado en el PC parámetros
jwsWidth
,jwsHeight
,jwsPosX
yjwsPosY
. - Ejecutar en local el documento pdf firmado: parámetro
executeInLocal
.
El archivo ecoSignatureJWS.ini presenta una configuración por defecto para poder lanzar un proceso de firmado.
Visualizador de documentos
La solución ecoSignature JWS Desktop permite la visualización tanto del documento a firmar como del documento firmado a pantalla completa o no, configurable a través de los parámetros expuestos anteriormente.
El visualizador presenta la siguiente estructura:
Se puede observar:
- Botones de incremento/decremento de página
- Selección manual de página.
- Botones de incremento/decremento de zoom
- Selección manual de zoom: presenta las siguientes escalas:
- Tamaño real del documento.
- Ajuste al tamaño de la página del documento.
- Ajuste a la anchura de la página del documento.
- Valores específicos de zoom: 50, 75, 100, 125, 150, 200, 300 y 400%.
- Tamaño real del documento.
- Botón de lanzamiento de firma con diferente comportamiento dependiendo del tipo de posicionamiento seleccionado.
El visualizador presenta los siguientes eventos de teclado:
- Zoom:
- Zoom más: CTRL y tecla +.
- Zoom menos: CTRL y tecla -.
- Zoom: CTRL y ruleta del ratón.
- Zoom más: CTRL y tecla +.
- Scroll de página:
- Botón izquierdo del ratón y movimiento del ratón.
- Ruleta del ratón.
- En la dirección seleccionada: flechas de dirección y teclado numérico 2,4,6 y 8.
- Botón izquierdo del ratón y movimiento del ratón.
- Carga de página del documento:
- Primera página: tecla de inicio de documento (inicio) y tecla numérica 7.
- Última página: tecla de fin de documento (fin) y tecla numérica 1.
- Siguiente página: tecla de avanzar página (avpág) y tecla numérica 3.
- Anterior página: tecla de retroceder página (repág) y tecla numérica 9.
- Primera página: tecla de inicio de documento (inicio) y tecla numérica 7.
- Lanzamiento o finalización de firma dependiendo del comportamiento del visualizador (firmador o visor):
- Enter o retorno de carro.
- Enter o retorno de carro.
- Salida de la aplicación: tecla escape.
- Eliminación de modo de solución siempre visible en pantalla (Always on top):
- CTRL+Q.
- CTRL+Q.
El visualizador trabaja en dos modos:
- Firmador: permite la visualización del documento a firmar y lanzar el proceso de firmado. En un posicionamiento manual, la ventana de firma inicialmente se posiciona en el centro de la página del documento.
- Visor: permite la visualización del documento firmado y confirma el firmado correcto del documento.
Al iniciar el visor, se visualiza el documento en la página firmada (centrado en pantalla y con el mismo zoom, siempre que se pueda, es decir, si se ha pasado anteriormente por el modo “Firmador”), en caso contrario se visualiza la primera página del documento.
Funcionamiento
Una vez configurados los diferentes parámetros de firmado en el archivo de configuración, se debe ejecutar el fichero ecoSignatureJWS_Desktop.exe en SO Windows.
A continuación se muestra el proceso general de firmado que depende de la activación o no de una serie de parámetros en el archivo de configuración.
- Si
showPDF=1
activación de visualización de documento a firmar.
El visor nos permite interactuar con el posicionamiento y el lanzamiento de la firma. Así, el usuario lanza la firma a través de un botón posicionado en la parte superior izquierda de la pantalla en la visualización del documento, que al ser pulsado, crea la ventana de firma:
- la ventana de firma puede ser redimensionada y desplazada por la página del documento seleccionada si el posicionamiento seleccionado es manual, y al clicar sobre la ella se lanza la firma,
- en caso contrario, no se podrá realizar ninguna acción sobre ella.
Para los posicionamientos fijo y flotante el usuario lanza la firma pulsando sobre el botón mencionado anteriormente.
IMPORTANTE: Si se ha seleccionado un posicionamiento manual, al activar el posicionamiento del widget o ventana de firma se deshabilitan los cambios de página y de zoom.
Aparición de la ventana de espera de firmado (con showEvents=1) y la ventana de introducción de firma de la aplicación ecoSignature JWS, ésta última puede mostrarse en diferentes tamaños/formatos dependiendo de los parámetros de configuración seleccionados anteriormente.
En la imagen, se muestra la ventana de espera, que permanece activa mientras se realiza el proceso de firmado, previamente configurada.
La ventana de espera de firmado muestra los eventos de firmado recibidos por parte de la aplicación ecoSignature JWS, es decir, el estado en el que se encuentra el proceso de firma en todo momento. Estos eventos son observados en el bloque de “Eventos recibidos”.
En la siguiente imagen podemos observar la ventana de introducción de firma de la aplicación:
En la ventana de introducción de firma se pueden realizar las siguientes operaciones:
- Reiniciar: reinicio de la firma.
- Cancelar: cancelación de la firma.
- Firmar: firma del documento.
- Reiniciar: reinicio de la firma.
Los botones presentan eventos de teclado:
- CTRL+R: reiniciar.
- CTRL+C: cancelar
- CTRL+A: firmar.
- CTRL+R: reiniciar.
- Visualización del documento firmado: una vez realizada la firma se puede observar el documento pdf firmado en la ubicación seleccionada como descarga.
Además se puede visualizar el documento pdf firmado de dos maneras:
- Si showPDFSigned=1: se abre el documento pdf firmado con el visualizador de la solución.
- Si executeInLocal=1: se abre el documento con la con la aplicación asociada para ello (Adobe Acrobat Reader, Foxit Reader,…).
- Si showPDFSigned=1: se abre el documento pdf firmado con el visualizador de la solución.
Nota
Este último parámetro es deshabilitado si se ha activado el anterior parámetro.
Nota
Éste es el comportamiento por defecto. Se permiten configurar las teclas en el archivo de configuración por defecto.
Datasheet o Panel de Terminalista
La solución ecoSignature JWS Desktop puede presentar el funcionamiento como datasheet o panel de terminalista, es decir, se puede realizar la firma de un documento con n participantes o firmantes, gestionando dicho proceso un usuario o terminalista a través de una interface en pantalla previamente configurada.
La activación del datasheet por parte de la solución se consigue informando al menos uno de los parámetros signatures-input-xml-b64
y signatures-input-xml
expuestos anteriormente en la definición del archivo de configuración general (Ver Apartado: Parámetros generales de la solución).
El archivo de parametrización de la interface del terminalista es informada en el parámetro interface-window
(Ver Apartado: Parámetros generales de la solución).
El panel de terminalista presenta la siguiente estructura (por defecto):
Se puede observar los siguientes elementos:
- Título:
- Introducción de un texto en el panel.
- Configurable a través del archivo de configuración de interface.
- Introducción de un texto en el panel.
- Listado de firmantes:
- Siempre visible en el panel.
- Presenta una lista con los firmantes que intervienen en el proceso de firmado definidos en el archivo de configuración XML.
- Siempre visible en el panel.
Dichos firmantes pueden ser:
- Procesables por la solución.
- Externos a la solución, solo se visualizan en la lista de firmantes.
- Procesables por la solución.
- Configurable a través del archivo de configuración de interface.
- Visor de documento a firmar:
- Presenta el documento a firmar definido en el archivo de configuración XML.
- Visualización del documento a página completa.
- Se actualiza el documento tras la aceptación de las diferentes firmas.
- Configurable a través del archivo de configuración de interface.
- Presenta el documento a firmar definido en el archivo de configuración XML.
- Imágenes:
- Visualización de imágenes en el panel definidas en el archivo de configuración XML.
- Relacionadas con cada ítem del listado (usuario firmante) seleccionado.
- Configurable a través del archivo de configuración de interface.
- Visualización de imágenes en el panel definidas en el archivo de configuración XML.
- Botones:
- Suprimir Operación:
- Cancelación del proceso de firmado.
- Configurable a través del archivo de configuración XML.
- Cuando es pulsado se muestra un aviso preguntando si se quiere cancelar la operación.
- Cancelación del proceso de firmado.
- Firmar en papel:
- Impresión en papel.
- Configurable a través del archivo de configuración XML.
- Cuando es pulsado se muestra un aviso indicando que todos los firmantes deben firmar en papel preguntando si se desea continuar.
- Impresión en papel.
- Ver PDF:
- Visualiza el documento en el visor por defecto instalado en el PC.
- Configurable a través del archivo de configuración XML.
- Cuando es pulsado se visualiza el documento temporal presente en el panel.
- Visualiza el documento en el visor por defecto instalado en el PC.
- Posponer/Terminar:
- Posposición o finalización del proceso de firmado.
- Configurable a través del archivo de configuración XML.
- Siempre está visible y habilitado en el panel una vez que todos los firmantes han firmado.
- Posposición o finalización del proceso de firmado.
- Suprimir Operación:
Cuando un usuario ha firmado se representa en el panel con el siguiente icono:
Cuando un usuario debe firmar obligatoriamente se representa en el panel con el siguiente icono:
El panel del terminalista presenta los siguientes eventos de teclado:
- Selección de firmante de la lista de firmantes:
- A través de las teclas de desplazamiento de arriba y abajo.
- A través de las teclas de desplazamiento de arriba y abajo.
- Lanzamiento de firma:
- Enter o retorno de carro.
- Enter o retorno de carro.
- Botones:
- Suprimir Operación: SHIFT+A.
- Firmar en papel: SHIFT+P.
- Ver PDF: SHIFT+V.
- Posponer/Terminar: SHIFT+F.
- Suprimir Operación: SHIFT+A.
Éste es el comportamiento por defecto. Se permiten configurar las teclas en el archivo de configuración de la interface.
Los eventos de botones solamente están habilitados cuando el botón correspondiente es visible en el panel y está habilitado.
- Salida de la aplicación:
- Tecla escape.
- Tecla escape.
- Eliminación de modo de solución siempre visible en pantalla (Always on top):
- CTRL+Q.
- CTRL+Q.
- Centrado del puntero de mouse en la pantalla principal:
- Barra espaciadora.
- Barra espaciadora.
Este comportamiento solo aplica cuando el proceso de firmado se realiza sobre una Stylus y el modo mouse está activado. En el panel terminalista se pueden presentar ventanas de diálogos donde se muestran los errores obtenidos en un proceso de firmado.
IMPORTANTE: A tener en cuenta:
- Se puede seleccionar un usuario firmante de la lista de firmantes con un click.
- Se puede lanzar la firma haciendo un doble click en el usuario firmante seleccionado de la lista de firmantes.
- Para el lanzamiento de una firma el usuario firmante seleccionado de la lista de firmantes no ha debido firmar y ser procesable por la solución (no externo).
Si se ha optado por realizar un proceso de firmado a través de un dispositivo de captura biométrica DTU, se visualiza en dicho dispositivo el documento a firmar.
En el dispositivo de captura biométrica DTU se puede realizar las siguientes funciones a través de su barra de herramientas (parte inferior de la pantalla):
- Lanzamiento de firma o finalización de proceso de firmado:
- Configurable a través del archivo de configuración de interface.
- Configurable a través del archivo de configuración de interface.
- Navegación por las diferentes páginas del documento a firmar:
- Zoom del documento a firmar:
- Configurable a través del archivo de configuración de interface.
- Configurable a través del archivo de configuración de interface.
El valor mínimo de zoom siempre es el ajuste de página. El valor máximo de zoom siempre es dos veces el ancho de página.
IMPORTANTE: Para comprobar el funcionamiento del datasheet o panel del terminalista, basta con sustituir el fichero datasheet/ecoSignatureJWS.ini
por el de la raíz. Para probar con un dispositivo u otro modificar el parámetro signatures-input-xml
de dicho fichero.
Fichero de configuración Interface
interface-window
en el archivo de configuración general.Para comprobar el funcionamiento del datasheet o panel del terminalista, basta con sustituir el fichero datasheet/ecoSignatureJWS.ini
por el de la raíz. Para probar con un dispositivo u otro modificar el parámetro signatures-input-xml
de dicho fichero.
Si el parámetro interface-window
no es informado en el archivo de configuración general, la interface se genera con unos valores por defecto.
El fichero de configuración de interface debe estar codificado en UTF-8 y presentar la siguiente estructura:
paramName1=value1
paramName2=value2
….
….
paramNameN=valueN
Nota
Se debe informar un parámetro por línea
-background
, -foreground
y -border-color
el valor debe ser “#RRGGBB” siendo RGB un número hexadecimal. Para parámetros booleanos, usar “1” para activar y “0” para desactivar. Para parámetros relacionados con tamaños, es decir, parámetros con -x
, -y
, -width
, -height
y -border-thickness
, el valor puede expresarse como:- valor entero (en pixeles):
title-x=120
title-border-thickness=3
- en porcentaje (en relación al tamaño de la pantalla):
Ejemplo:title-width=30%
title-height=10%
Para parámetros relacionados con fuentes de texto
-font
:- Nombre de fuente
-font-name
: nombre de la fuente a utilizar. - Estilo de fuente
-font-style
: valor entero cuyo valor puede ser:- 0: PLAIN
- 1: BOLD
- 2: ITALIC
- 3: BOLD+ITALIC
- 0: PLAIN
- Tamaño de fuente
-font-size
: valor entero
Nota
Se debe informar un parámetro por línea
Parámetros generales
A continuación se describen los parámetros generales de la interface.
Param Name | Valor | Valor por defecto | Comportamiento |
always-on-top | Booleano | 0 | Ficha siempre visible en pantalla.. |
fullscreen | Booleano | 0 | Visualización en modo full screen. |
general-background | String | #FFFFFF | Color de fondo del panel de datasheet. |
Parámetros título
Estos parámetros controlan la aparición y formato de un texto en la pantalla del terminalista.
Param Name | Valor | Valor por defecto | Comportamiento |
title-activate | Booleano | 1 | Activar título en panel. |
title-x | Entero | 3% | Posición x en pantalla. |
title-y | Entero | 4% | Posición y en pantalla. |
title-width | Entero | 25% | Ancho en pantalla. |
title-height | Entero | 15% | Alto en pantalla. |
title-border-color | String | #33E9FF | Color del borde. |
title-border-thickness | Entero | 0 | Ancho del borde. |
title-font-label | String | Firma en tableta | Texto. |
title-font-name | String | Arial Black | Nombre de fuente. |
title-font-style | Entero | 2 | Estilo de fuente. |
title-font-size | Entero | 34 | Tamaño de fuente. |
title-background | String | #FFFFFF | Color de fondo. |
title-foreground | String | #E34040 | Color de texto. |
Parámetros de listado de firmantes
Estos parámetros controlan el formato del listado de firmantes en la pantalla del terminalista.
Param Name | Valor | Valor por defecto | Comportamiento |
Listado | |||
list-x | Entero | 2% | Posición x en pantalla. |
list-y | Entero | 30% | Posición y en pantalla. |
list-width | Entero | 25% | Ancho en pantalla. |
list-height | Entero | 40% | Alto en pantalla. |
list-border-color | String | #33E9FF | Color del borde. |
list-border-thickness | Entero | 2 | Ancho del borde. |
list-background | String | #FFFFFF | Color de fondo. |
Cabecera (head) | |||
list-head-background | String | #373737 | Color de fondo. |
list-head-foreground | String | #FFFFFF | Color de texto. |
list-head-font-name | String | Arial Black | Nombre de fuente. |
list-head-font-style | Entero | 1 | Estilo de fuente. |
list-head-font-size | Entero | 14 | Tamaño de fuente. |
list-head-height | Entero | 24 | Alto. |
list-head-label | String | Firmante | Texto. |
Celda de listado (item) | |||
list-item-height | Entero | 25 | Alto. |
list-item-label-to-upper-case | Booleano | 1 | Texto en mayúsculas |
list-item-font-name | String | Arial | Nombre de fuente. |
list-item-font-style | Entero | 0 | Estilo de fuente. |
list-item-font-size | Entero | 12 | Tamaño de fuente. |
list-item-selected-background | String | #3447CE5 | Color de fondo de ítem seleccionado. |
list-item-selected-foreground | String | #FFFFFF | Color de texto de ítem seleccionado. |
list-item-background-odd | String | #E6E6E6 | Color de fondo de ítem par no seleccionado. |
list-item-background-even | String | #F0F0F0 | Color de fondo de ítem impar no seleccionado. |
list-item-foreground | String | #000000 | Color de texto de ítem no seleccionado. |
list-item-signed-background | String | #BBBBBB | Color de fondo de ítem firmado. |
list-item-signed-foreground | String | #FFFFFF | Color de texto de ítem firmado. |
list-item-extern-background | String | #EC7063 | Color de fondo de ítem externo. |
list-item-extern-foreground | String | #FFFFFF | Color de texto de ítem externo. |
Parámetros de visor de documento a firmar
Param Name | Valor | Valor por defecto | Comportamiento |
pdf-activate | Booleano | 1 | Activar visor de documento a firmar en panel. |
pdf-x | Entero | 30% | Posición x en pantalla. |
pdf-y | Entero | 7% | Posición y en pantalla. |
pdf-width | Entero | 38% | Ancho en pantalla. |
pdf-height | Entero | 80% | Alto en pantalla. |
pdf-border-color | String | #33E9FF | Color del borde. |
pdf-border-thickness | Entero | 2 | Ancho del borde. |
pdf-background | String | #EEEEEE | Color de fondo. |
pdf-load-foreground | String | #FFFFFF | Color de texto en recarga de página. |
pdf-load-font-name | String | Arial | Nombre de fuente en recarga de página. |
pdf-load-font-style | Entero | 1 | Estilo de fuente en recarga de página. |
pdf-load-font-size | Entero | 16 | Tamaño de fuente en recarga de página. |
Parámetros de imágenes
Param Name | Valor | Valor por defecto | Comportamiento |
Imagen 1 | |||
img1-activate | Booleano | 1 | Activar imagen 1 en panel. |
img1-x | Entero | 79% | Posición x en pantalla. |
img1-y | Entero | 25% | Posición y en pantalla. |
img1-width | Entero | 120 | Ancho en pantalla. |
img1-height | Entero | 180 | Alto en pantalla. |
img1-border-color | String | #33E9FF | Color del borde. |
img1-border-thickness | Entero | 1 | Ancho del borde. |
img1-background | String | #FFFFFF | Color de fondo. |
Imagen 2 | |||
img2-activate | Booleano | 1 | Activar imagen 2 en panel. |
img2-x | Entero | 70% | Posición x en pantalla. |
img2-y | Entero | 55% | Posición y en pantalla. |
img2-width | Entero | 360 | Ancho en pantalla. |
img2-height | Entero | 90 | Alto en pantalla. |
img2-border-color | String | #33E9FF | Color del borde. |
img2-border-thickness | Entero | 1 | Ancho del borde. |
img2-background | String | #FFFFFF | Color de fondo. |
Parámetros de botones
Param Name | Valor | Valor por defecto | Comportamiento |
Botón cancelar | Cancelar operación | ||
button-cancel-x | Entero | 2% | Posición x en pantalla. |
button-cancel-y | Entero | 90% | Posición y en pantalla. |
button-cancel-width | Entero | 14% | Ancho en pantalla. |
button-cancel-height | Entero | 5% | Alto en pantalla. |
button-cancel-padding-top | Entero | 0 | Padding superior. |
button-cancel-padding-left | Entero | 5 | Padding izquierdo. |
button-cancel-padding-bottom | Entero | 0 | Padding inferior. |
button-cancel-padding-right | Entero | 0 | Padding derecho. |
button-cancel-label | String | Suprimir Operación | Texto en botón. |
button-cancel-background | String | #F7F7F7 | Color de fondo. |
button-cancel-foreground | String | #000000 | Color de texto. |
button-cancel-font-name | String | Arial Black | Nombre de fuente. |
button-cancel-font-style | Entero | 1 | Estilo de fuente. |
button-cancel-font-size | Entero | 12 | Tamaño de fuente. |
button-cancel-border-color | String | #33E9FF | Color del borde. |
button-cancel-border-thickness | Entero | 1 | Ancho del borde. |
button-cancel-keyboard | Entero | 65 (=A) | Evento de teclado SHIFT+carácter, donde carácter es el valor en decimal del ASCII (carácter). |
Botón ver PDF | Ver PDF | ||
button-showpdf-x | Entero | 86% | Posición x en pantalla. |
button-showpdf-y | Entero | 84% | Posición y en pantalla. |
button-showpdf-width | Entero | 9% | Ancho en pantalla. |
button-showpdf-height | Entero | 5% | Alto en pantalla. |
button-showpdf-padding-top | Entero | 0 | Padding superior. |
button-showpdf-padding-left | Entero | 5 | Padding izquierdo. |
button-showpdf-padding-bottom | Entero | 0 | Padding inferior. |
button-showpdf-padding-right | Entero | 0 | Padding derecho. |
button-showpdf-label | String | Ver PDF | Texto en botón. |
button-showpdf-background | String | #F7F7F7 | Color de fondo. |
button-showpdf-foreground | String | #000000 | Color de texto. |
button-showpdf-font-name | String | Arial Black | Nombre de fuente. |
button-showpdf-font-style | Entero | 1 | Estilo de fuente. |
button-showpdf-font-size | Entero | 12 | Tamaño de fuente. |
button-showpdf-border-color | String | #33E9FF | Color del borde. |
button-showpdf-border-thickness | Entero | 1 | Ancho del borde. |
button-showpdf-keyboard | Entero | 86 (=V) | Evento de teclado SHIFT+carácter, donde carácter es el valor en decimal del ASCII (carácter). |
Botón firmar en papel | Firmar en papel | ||
button-signedpaper-x | Entero | 20% | Posición x en pantalla. |
button-signedpaper-y | Entero | 90% | Posición y en pantalla. |
button-signedpaper-width | Entero | 14% | Ancho en pantalla. |
button-signedpaper-height | Entero | 5% | Alto en pantalla. |
button-signedpaper-padding-top | Entero | 0 | Padding superior. |
button-signedpaper-padding-left | Entero | 5 | Padding izquierdo. |
button-signedpaper-padding-bottom | Entero | 0 | Padding inferior. |
button-signedpaper-padding-right | Entero | 0 | Padding derecho. |
button-signedpaper-label | String | Firmar en papel | Texto en botón. |
button-signedpaper-background | String | #F7F7F7 | Color de fondo. |
button-signedpaper-foreground | String | #000000 | Color de texto. |
button-signedpaper-font-name | String | Arial Black | Nombre de fuente. |
button-signedpaper-font-style | Entero | 1 | Estilo de fuente. |
button-signedpaper-font-size | Entero | 12 | Tamaño de fuente. |
button-signedpaper-border-color | String | #33E9FF | Color del borde. |
button-signedpaper-border-thickness | Entero | 1 | Ancho del borde. |
button-signedpaper-keyboard | Entero | 80 (=P) | Evento de teclado SHIFT+carácter, donde carácter es el valor en decimal del ASCII (carácter). |
Botón terminar | Finalizar operación | ||
button-finish-x | Entero | 86% | Posición x en pantalla. |
button-finish-y | Entero | 90% | Posición y en pantalla. |
button-finish-width | Entero | 9% | Ancho en pantalla. |
button-finish-height | Entero | 5% | Alto en pantalla. |
button-finish-padding-top | Entero | 0 | Padding superior. |
button-finish-padding-left | Entero | 5 | Padding izquierdo. |
button-finish-padding-bottom | Entero | 0 | Padding inferior. |
button-finish-padding-right | Entero | 0 | Padding derecho. |
button-finish-label | String | Posponer | Texto en botón. |
button-finish-label-all-signatures | String | Terminar | Texto en botón cuando se han introducido todas las firmas. |
button-finish-background | String | #F7F7F7 | Color de fondo. |
button-finish-foreground | String | #000000 | Color de texto. |
button-finish-font-name | String | Arial Black | Nombre de fuente. |
button-finish-font-style | Entero | 1 | Estilo de fuente. |
button-finish-font-size | Entero | 12 | Tamaño de fuente. |
button-finish-border-color | String | #33E9FF | Color del borde. |
button-finish-border-thickness | Entero | 1 | Ancho del borde. |
button-finish-keyboard | Entero | 70 (=F) | Evento de teclado SHIFT+carácter, donde carácter es el valor en decimal del ASCII (carácter). |
El valor decimal del carácter para los eventos de teclado puede obtenerse en www.asciitable.com.
Parámetros de eventos
Param Name | Valor | Valor por defecto | Comportamiento |
list-event-first-item-not-signed-selected | Booleano | 1 | Seleccionar primer firmante del listado al iniciar la aplicación que no haya firmado. |
list-event-just-a-signer-launch-signature | Booleano | 1 | Lanzar firma automáticamente al iniciar la aplicación cuando solo hay un firmante pendiente de firmar. |
list-event-close-all-signatures | Booleano | 0 | Terminar proceso cuando se han introducido todas las firmas o han firmado todos los participantes. |
button-signedpaper-event-launch-printer-default | Booleano | 0 | Lanzar la impresora por defecto al pulsar el botón de imprimir en papel. |
buttons-selected-background | String | #B8E6FB | Color de fondo de los botones cuando son seleccionados. |
Parámetros DTU
Param Name | Valor | Valor por defecto | Comportamiento |
dtu-num-monitor | Entero | 1 | Número de monitor donde se encuentra la DTU. |
dtu-view-zoom | String | page-width | Zoom inicial del visor de documento en la DTU. |
dtu-toolbar-height | Entero | 120 | Tamaño en pixeles de la barra de herramientas en la DTU. |
dtu-toolbar-button-action-activate | Booleano | 1 | Activación en la barra de herramientos del botón de acción (firmar o salir) en la DTU. |
dtu-return-mouse-main-screen-keyboard | 32 (= Barra espaciadora) | Evento de teclado carácter, donde carácter es el valor en decimal del ASCII (carácter). |
En el parámetro dtu-view-zoom
se permite:
- cualquier valor entero positivo.
- las cadenas de texto:
page-width
: anchura de la páginapage-fit
: ajuste de páginapage-actual
: tamaño real de la página
El valor mínimo de zoom siempre es el ajuste de página.
El valor máximo de zoom siempre es dos veces el ancho de página.
El valor decimal del carácter para los eventos de teclado puede obtenerse en www.asciitable.com.
Fichero de configuración XML
El fichero de configuración XML nos permite parametrizar el proceso de firma informando principalmente:
- del documento a firmar.
- de los participantes en dicho proceso.
El fichero de configuración XML debe estar codificado en UTF-8 y presentar la siguiente estructura:
<?xml version="1.0" encoding="UTF-8"?>
<Configuracion>
<General>
<param>value</param>
……...
</General>
<Firmantes>
<Firmante>
<param>value</param>
……...
</Firmante>
<Firmante>
<param>value</param>
……...
</Firmante>
……...
</Firmantes>
</Configuracion>
Tag general
En esta sección se configura el comportamiento general del proceso de firmado. A continuación se enumeran los tag’s disponibles de configuración:
Entrada de documento:
<pdfB64>
(String): Documento PDF a firmar en Base64.<pdfUrl>
(String): URL de entrada de donde se coge el documento PDF a firmar. Tiene preferencia el tag <pdfB64> sobre el <pdfUrl>.
IMPORTANTE: Para el correcto lanzamiento del proceso de firma se debe informar al menos de uno de los dos parámetros.
<password>
(String): Contraseña de documento.<certificate>
(Booleano): Firma PDF Certificada (MDP) para el documento PDF de salida.- Guardado de documento PDF:
<savePDFPath>
(String): Ruta donde se guarda en local el documento pdf firmado. Si está vacío, la ruta por defecto será la de temporales.<savePDFName>
(String): Nombre (incluyendo la extensión .pdf) para el fichero que se va a generar/guardar en local. Si no se incluye, el nombre por defecto será “PDF_Signed.pdf”.
IMPORTANTE: La ruta de guardado de PDF la componen los tag’s <savePDFPath>
y <savePDFName>
.
A tener en cuenta:
- para la formación de la ruta de guardado de PDF se debe informar al menos uno de los dos parámetros.
- si no se informa ningún parámetro se sobreescribe el fichero original.
- para la formación de la ruta de guardado de PDF se debe informar al menos uno de los dos parámetros.
<returnPDFB64>
(Booleano): Devolución de PDF en Base64.- Guardado de XML:
<saveXMLPath>
(String): Ruta donde se guarda en local el XML final del proceso de firma. Si está vacío, la ruta por defecto será la de temporales.<saveXMLName>
(String): Nombre (incluyendo la extensión .xml) para el fichero que se va a generar/guardar en local. Si no se incluye, el nombre por defecto será “XML_Signed.pdf”.
IMPORTANTE: La ruta de guardado de XML la componen los tag’s <saveXMLPath>
y <saveXMLName>
.
A tener en cuenta:
- para la formación de la ruta de guardado de XML se debe informar al menos uno de los dos parámetros.
- si no se informa ningún parámetro se sobreescribe el fichero original.
- para la formación de la ruta de guardado de XML se debe informar al menos uno de los dos parámetros.
<returnXMLB64>
(Booleano): Devolución de XML en Base64.- Configuración de botones:
<showCancelButton>
(Booleano): Botón de cancelación de proceso.<showViewPDFButton>
(Booleano): Botón ver PDF.<showSignPaperButton>
(Booleano): Botón de firmar en papel.<showFinishButton>
(Booleano): Botón de posponer/terminar.
<xml-date-format-signed>
(String): Formato de tag “timeStamp”. Uso de estilos de formatos o patrones proporcionados por la clase SimpleDateFormat de Java.- Relacionados con parámetros de configuración de la firma (parámetros JNLP).
Para crear el tag del archivo de configuración XML en relación a los parámetros del archivo de configuración del .ini se debe realizar la siguiente transformación: parámetro JNLP param=value
tag XML <param>value</param>
Ejemplo:
tsp-activate=0 0
Tag Firmantes
En esta sección se configura el comportamiento de cada firmante.
Se pueden introducir n firmantes con la estructura:
<Firmante>
<param>value</param>
<param>value</param>
<param>value</param>
……...
</Firmante>
A continuación se enumeran los tag’s disponibles de configuración para cada firmante:
<item>
(String): Literal que aparece en el listado de firmantes para cada firmante.<img1B64>
(String): Imagen 1 que aparece en el panel del terminalista al seleccionar un item del listado de firmantes.<img2B64>
(String): Imagen 2 que aparece en el panel del terminalista al seleccionar un item del listado de firmantes.<signed>
(Entero): Indica si el usuario firmante ha firmado.<timeStamp>
(String): Indica la fecha y hora en el que el usuario firmante ha firmado.<idSignatory>
(String): Identificador de firmante.
Debe ser único para cada firmante, por ejemplo el DNI. Si existe un usuario con más de una firma a introducir (mismo “idSignatory”), el proceso de firma no se puede posponer o finalizar hasta que el usuario haya introducido todas las firmas.
mandatoryToPostpone>
(Booleano): Indica si la firma de un usuario es obligatoria para posponer o finalizar el proceso de firmado.- Relacionados con parámetros de configuración de la firma (parámetros JNLP). Se permiten exclusivamente los parámetros definidos en el Apartado Parámetros JNLP (Configuración de la firma) siguientes:
- Entrada y salidas del documento PDF:
<widget-Textcustom>
- Entrada y salidas del documento PDF:
<author>
-
<reason>
-
<contact>
-
<location>
- Certificados de firma y cifrado:
<cert-origin>
- Certificados de firma y cifrado:
<cert-origin-ca>
-
<pfx-b64>
-
<pfx-url>
-
<pfx-pw>
-
<Chain-CA-b64>
-
<enc-key-b64>
-
<tsp-activate>
-
<tsp-url>
-
<tsp-user>
-
<tsp-password>
-
<ocsp-activate>
-
<ocsp-url>
-
<ocsp-user>
-
<ocsp-password>
- Ubicación del área de firma en el documento:
<widget-Ancho>
- Ubicación del área de firma en el documento:
<widget-Alto>
-
<widget-Page>
-
<widget-X>
-
<widget-Y>
-
<widget-Transparent-activate>
-
<widget-autoPos-activate>
-
<widget-autoPos-text>
-
<widget-autoPos-desfaseX>
-
<widget-autoPos-desfaseY>
-
<PDFEmptySig_enable>
-
<PDFEmptySig_fieldname>
- Dispositivo de captura biométrica:
<ebp-activate>
<ebp-use-internal>
-
<ebp-url>
-
<showEBP>
-
<noButtonEBP>
-
<ebp-variables>
-
<ebp-initial-activate>
-
<ebp-initial-url>
-
<ebp-initial-variables>
- Modo solo firma biometría:
<jsigMode>
- Modo solo firma biometría:
<jsigJPG>
- Para pasar variables a las plantillas o ebp’s se dispone de los tag’s
<ebp-initial-textos>
y<ebp-textos>
con la siguiente estructura:- Plantilla o ebp inicial:
- Plantilla o ebp inicial:
- Para pasar variables a las plantillas o ebp’s se dispone de los tag’s
<ebp-initial-textos>
<nombreVariable>valorVariable</nombreVariable>
<nombreVariable>valorVariable</nombreVariable>
.....
.....
</ebp-initial-textos>
- Plantilla o ebp de introducción de firma:
<ebp-textos>
<nombreVariable>valorVariable</nombreVariable>
<nombreVariable>valorVariable</nombreVariable>
.....
.....
</ebp-textos>
Para los tags <ebp-textos>
y <ebp-initial-textos>
, se pueden añadir n tags hijos con la estructura valorVariable donde el nombreVariable debe coincidir con alguna de las variables definidas en los ebp’s o plantillas.
Si se informan estas tags es necesario ponerlos como última parte de cada firmante, ya que el xml se procesa secuencialmente de principio a fin y se ha podido introducir en un firmante parámetros jnlp relacionados con los ebp’s.
Generación de parametrización de firma
Los parámetros JNLP expuestos a lo largo del documento son los que parametrizan un proceso de firmado.
Estos parámetros pueden informarse en el fichero de configuración por defecto ecoSignatureJWS.ini
o en el archivo de configuración XML del panel del terminalista.
Así podemos definir una configuración de firma en tres niveles:
- Nivel 0 o configuración general, a través del fichero de configuración por defecto
ecoSignatureJWS.ini
. - Nivel 1 o configuración específica de firma, a través del fichero de configuración XML del panel del terminalista en el tag
<General>
. - Nivel 2 o configuración particular de firma (para cada firmante), a través del fichero de configuración XML del panel del terminalista en el tag
<Firmante>
.
A continuación se detalla el proceso de obtención de la parametrización resultante a partir de estos tres niveles:
- Se parte de la base de la configuración de nivel 0, es decir, de las parametrizaciones obtenidas del fichero de configuración por defecto
ecoSignatureJWS.ini
. - Se sobrescribe o se complementa la parametrización general con la parametrización específica de la firma configurada en el fichero de configuración XML del panel del terminalista en el tag
<General>
. - Se sobrescribe o se complementa la parametrización resultante de las parametrizaciones general y específica con la parametrización particular de la firma (para cada firmante) configurada en el fichero de configuración XML del panel del terminalista en el tag
<Firmante>
.
Llamada externa
La solución ecoSignature JWS Desktop puede ser llamada externamente desde consola o una aplicación tercera siguiendo el patrón:
ecoSignatureJWS_Desktop[.exe] argumento1 argumento2 …. argumentoN
Los argumentos son opcionales y pueden presentarse n argumentos, éstos pueden ser:
La ruta absoluta de un nuevo fichero de configuración que contiene n parámetros de configuración precedido por “ini=”. (Ver Apartado Fichero de configuración).
Ejemplo:
ecoSignatureJWS_Desktop[.exe] ini=nuevaConfiguracion.ini
Cualquier parámetro de configuración como argumento definido anteriormente (Ver Apartado Parámetros de configuración) siguiendo la siguiente estructura:
paramName=value
Ejemplo:
ecoSignatureJWS_Desktop[.exe] widget-Page=1 widget-X=300 widget-Y=175
Nota
Recordar que la solución ecoSignature JWS Desktop dispone de un fichero de configuración por defecto (ecoSignatureJWS.ini), que es leído y cargado al lanzar la solución.
Nota
Si desde la llamada externa se informa de un nuevo fichero de configuración, éste es leído y cargado en la solución, sobreescribiendo o complementando al fichero de configuración por defecto. De la misma manera sucede con los argumentos pasados en la llamada, se procesan en el orden introducidos siempre de derecha a izquierda. Los parámetros relacionados con el datasheet o panel del terminalista son los últimos en procesarse, independientemente del orden introducidos.
IMPORTANTE: A tener en cuenta:
- Si se necesita pasar un espacio en blanco en algún argumento:
- Windows:
- se debe reemplazar éste por la secuencia %20:
- Windows:
ebp-variables=Titulo=Solicitud%20de%20Informe
- poner el argumento entre comillas dobles:
“ebp-variables=Titulo=Solicitud de Informe”
- Linux:
- se debe reemplazar éste por la secuencia %20:
- Linux:
ebp-variables=Titulo=Solicitud%20de%20Informe
- escapar con el caracter \:
ebp-variables=Titulo=Solicitud\ de\ Informe
- poner el argumento entre comillas simples:
‘ebp-variables=Titulo=Solicitud de Informe’
- Si se necesita escapar caracteres en línea de comandos de Windows. En la línea de comandos de Windows hay ciertos caracteres que tienen un comportamiento especial: \ & ^ | > <
Cuando se necesite escribirlos como texto simple debemos anteponer el carácter de escape ^. Entonces, cada uno de los especificados anteriormente, resultan: ^\ ^& ^^ ^| ^> ^<. También se pueden escapar poniendo el argumento entre comillas dobles. - Si se realiza el lanzamiento externo desde un archivo .bat (Windows) introducir como primera línea chcp 1252 (codificación a Windows 1252) y guardarlo con codificación ANSI para evitar posibles problemas de codificación en el visualizado de las plantillas o ebp’s tanto en la pantalla del PC como en la tableta.
Ejemplo:
chcp 1252
C:\ecoSignatureJWS\pecoSignatureJWS_Desktop[.exe] "ebp-variables=Titulo= LOPD Ley Orgánica de Protección de Datos|||Subtitulo=Firma de consentimiento de cesión de datos|||Nombre=Juan Rodriguez Blasco|||AreaFirma=Confirmo que los datos consignados en este formulario son ciertos y que tengo autorización bastante para la firma de esta solicitud. Acepto y firmo:|||LOPD=De acuerdo a la normativa vigente sobre LOPD, Ud. acepta que sus datos personales sean gestionados por nuestra organización para mejorar la calidad del servicio. Estos datos no serán facilitados a organizaciones fuera de nuestro grupo corporativo sin su aceptación expresa"
PAUSE
Fichero de configuración
El fichero de configuración es un argumento opcional en la llamada externa a la solución ecoSignature JWS Desktop.
Si se pasa como argumento, este fichero de texto debe estar codificado en UTF-8 y presentar la siguiente estructura:
paramName1=value1
paramName2=value2
….
….
paramNameN=valueN
IMPORTANTE: Un parámetro por línea. Los diferentes parámetros a utilizar para la parametrización del proceso de firma se encuentran en el Apartado: Parámetros de configuración.
Salida de ecoSignature JWS Desktop
La solución ecoSignature JWS Desktop presenta dos salidas en su proceso que pueden ser parseadas:
- Salida estándar del proceso donde se muestra el log interno de la aplicación.
Salida de error donde se muestra el posible error al operar con la solución.
Códigos de salida
La solución ecoSignature JWS Desktop devuelve una serie de códigos de respuesta a la llamada externa de la aplicación. A continuación se enumeran los posibles códigos devueltos:
- 42: Salida de proceso de firmado correcto por posposición desde el datasheet o panel del terminalista.
- 41: Salida de proceso de firmado por impresión de documento a firmar desde el datasheet o panel del terminalista.
- 40: Salida de proceso de firmado correcto por finalización desde el datasheet o panel del terminalista.
- 0: Documento firmado correctamente.
- -1: Error al firmar documento. (Ver consola de Java, log de Java o log de la solución).
- -2: El proceso de firma ha sido cancelado.
- -3: Error en Web Socket.
- -4: La solución ya se encuentra en ejecución.
- -5: Error en configuración de parámetros antes de lanzar el proceso de firmado.
- -6: El fichero jnlp generado para el lanzamiento de la solución excede de 1Mb.
- -7: Error al lanzar el fichero jnlp generado.
- -8: Sistema operativo no soportado.
- -9: Error general de firmado.
- -10: Error de licencia.
- -11: No hay ningún dispositivo stylus conectado.
- -12: Ha realizado una firma sin suficientes puntos (parámetro Min_Points).
- -13: La introducción de la firma ha excedido su tiempo máximo (parámetro max-sig-time).
- -14: No hay tableta wacom conectada.
- -15: Ya existe una ventana de firma mostrándose en el lado cliente.
- -16: No hay certificado de firma en Windows disponible.
- -17: No se ha podido acceder a la llave privada del certificado de Windows.
- -20: No se ha encontrado el fichero de firma ecobiometric.jar en la ruta indicada.
- -30: El proceso de firma ha sido cancelado desde el visualizador.
- -40: El proceso de firma se ha cancelado desde el datasheet o panel de terminalista.
- -41: Error en lectura de fichero de configuración XML de datasheet o panel del terminalista.
- -42: Error de configuración de fichero de configuración XML de datasheet o panel del terminalista.
- -43: Error general en procesamiento del fichero de configuración XML de datasheet o panel del terminalista.
- -44: Error específico en procesamiento del fichero de configuración XML de datasheet o panel del terminalista.
- -45: Error de salida forzada de datasheet o panel del terminalista.
Nota
IMPORTANTE: Los códigos de error (valores negativos de salida) son devueltos en la salida de error del proceso.
Nota
En base 64 la limitación la impone la tecnología JNLP (Java Network Launching Protocol) y es de 1Mb para el fichero generado. (Tamaño del pdf binario aproximadamente de tamaño máximo de 750Kb).
Lanzamiento desde ecoSignature Launch from PC
La solución ecoSignature JWS Desktop puede ser lanzada desde la solución ecoSignature Launch from PC. En este tipo de lanzamiento se debe tener en cuenta que la configuración presente en el archivo de configuración por defecto (ecoSignatureJWS.ini) es sobreescrita o complementada por la llamada externa realizada por la solución ecoSignature Launch from PC:
- Se parametriza o se sobreescribe el parámetro relacionado con la comunicación entre el cliente (Desktop) y ecoSignatureJWS, la comunicación se realiza a través de un Web Socket
externalWebSocket
yexternalWebSocket-url
. - Se desactiva o sobreescribe el parámetro relacionado con mostrar las alertas en la aplicación showAlert.
- Se anulan o eliminan los valores presentes en los parámetros relacionados con el datasheet o panel del terminalista
signatures-input-xml-b64
ysignatures-input-xml
. - Se parametriza o sobreescribe el parámetro relacionado con el documento a firmar
remotePdf-url
. - Se anula el parámetro relacionado con el documento a firmar en base 64
Pdf-Content
. - Se parametrizan o se sobreescriben los parámetros relacionados con el guardado del documento a firmar
saveInLocalPath
ysaveInLocalName
. - En el caso de devolución de imagen del grafo en base 64 se parametrizan o se sobreescriben los parámetros relacionados con la descarga de JPG del grafo del documento firmado
saveImgInLocal
,saveImgInLocalPath
ysaveImgInLocalName
.
Resolución de errores
Ante un problema con la solución JWS, compruebe primero el log de la solución, si está desactivado, se debe activar.
A continuación, active la consola de Java, para ello vaya al panel de configuración de Java (https://www.java.com/en/download/help/win_controlpanel.xml) y en la pestaña Avanzado active los checks de “Activar Rastreo”, “Activar Registro”, “Mostrar excepciones del ciclo de vida del applet” y “Ver consola” como en la siguiente imagen:
Ante cualquier error, se muestra una traza tanto en la consola de Java, como se generan ficheros de traza por defecto en:
- para Windows: C:\Users\[Usuario]\AppData\LocalLow\Sun\Java\Deployment\log
- para Linux: /home/[Usuario]/.java/deployment/log
En esa traza podría identificar los siguientes eventos:
- Started… version_date: XXX Es la primera instrucción del JWS, hasta que ocurra ésta línea el JWS aún no estará en ejecución. Java previamente al lanzado del JWS hace comprobaciones de seguridad al JWS entre otras cosas. Si ocurre un error previamente a ésta línea compruebe con su equipo de sistemas la seguridad de Java y los certificados de seguridad de Java. Es muy importante el XXX cuando comunique con soporte un problema para que sepamos si existe una actualización disponible.
- Start signature result: 0 Se ha terminado de configurar el dispositivo que se hubiera seleccionado y el sistema está esperando para recoger la firma biométrica
- Response message: OK (la firma ha sido exitosa) y se ha dejado el PDF correctamente al POST que ha respondido OK
- Exiting… El JWS ha finalizado completamente
Categoría: Errores en ESS | |
-1 | Error general. Revise su licencia y ficheros de entrada. La traza debiera dar más información |
-2 | Revise su licencia |
-66601 | Error al cargar certificado para cifrar datos biométricos. |
-66602 | Error al cifrar datos biométricos. |
-66603 | Error al cargar datos biométricos cifrados en el API. |
-66610 | Error al añadir certificado firmador de PFX, no se ha encontrado, la contraseña no coincide. |
-66611 | Error al añadir certificado firmador de PFX, no hay llave privada disponible. |
-66612 | Se ha especificado validar el certificado firmante y éste no es válido por el motivo que sea, ocsp, expirado, etc… |
-66600 | Error al cargar la imagen jpeg en memoria. |
-66700+X | Error al FIRMAR EL PDF. No ha servido para nada, no se ha generado fichero. Res es un valor negativo también, es el resultado de llamar a la función de firmar un pdf, así que por ejemplo puede dar un -66701 que sería error general al firmar el pdf. |