Componente de Firma para Firma Electrónica Avanzada - wiki - Seguridad
Wiki
Componente de Firma para Firma Electrónica Avanzada
EL siguiente documento se encuentra en estado de borrador
Table of Contents [-]
Introducción
Este documento describe la arquitectura del Componente de Firma y cómo se integra a un sistema web para la firma electrónica de documentos PDF, XML y génericos mediante Hash.
Alguna de las ventajas de utilizar la firma electrónica avanzada son:
• Autenticación: la firma electrónica es equivalente a la firma física del documento, autenticando la identidad de quién firma el documento.
• Integridad: asegura que el contenido original del documento no ha sido alterado.
Arquitectura
Esquema general de la solución
La solución esta desarrollada con tecnología Java Applet y/o Java Web Start, y compatible con jre 1.6 y 1.7.
La interacción con el sistema web existente es a través de dos Servicios Web SOAP que publicará el sistema existente y el Componente de Firma podrá consumir: Un primer servicio donde el Componente de Firma podrá obtener la colección de documentos a firmar. Un segundo servicio donde el Componente de Firma podrá entregar al sistema existente los documentos ya firmados por el usuario.
Ambos servicios se autenticarán con un identificador de transacción alfanumérico, que será generado aleatoriamente por la aplicación a la cual se le está incorporando firma electrónica y será obtenido por el Componente de Firma como un parámetro de carga. El mismo ID de transacción se utiliza para autenticar el consumo de los dos servicios, y cuando se consume el segundo, el mismo deberá ser invalidado en forma interna por el sistema existente.
La siguiente figura muestra la arquitectura general de la solución.
1. Componente de Firma, conteniendo las funcionalidades necesarias para visualizar y firmar un conjunto de documentos, el mismo se ejecuta en el contexto del navegador Web que el usuario está utilizando o como una aplicación Java Web Start.
2. Token criptográfico con el certificado de firma y su clave privada
3. Servicio Web de Integración (AgesicFirmaWS), encargados de enviar los documentos a firmar, recibir los documentos firmados y generar el ID de transacción.
Como se muestra en la figura, los componentes 1 y 2 residen en la estación de trabajo del usuario que está firmando los documentos y el componente 3 reside en el sistema existente a la cual se le está incorporando la solución de firma electrónica de documentos.
Para firmar los documentos, el Componente de Firma listará los certificados almacenados en los siguientes repositorios:
1. Tokens USB o Smartcards conectadas y con drivers instalados (Firma tipo PKCS#11).
3. Archivos de tipo P12 o PFX que el usuario manualmente seleccionara (Firma tipo P12). Las firmas de este tipo NO son firma electróncia avanzada como la define la ley 18600.
Los pasos necesarios para firmar electrónicamente un conjunto de documentos son los siguientes:
1. El Componente de Firma accede a la colección de documentos a firmar, pasando como parámetro el ID de transacción al Servicio Web de integración.
2. En caso de estar configurada la visualización de documentos, el Componente de Firma despliega los documentos a firmar, según su tipo.
3. El Componente de Firma accede a los almacenes de certificados para listar al usuario todos los certificados presentes o da la opción de que manualmente seleccione un archivo de tipo P12 o PFX.
4. El usuario selecciona el certificado con el cual firmará los documentos.
5. El usuario selecciona la opción de firmar los documentos.
6. El Componente de Firma firma los documentos con el certificado seleccionado en el punto 2.
7. El Componente de Firma envía los documentos firmados (pasando como parámetro el ID de la transacción)
A nivel de estándares de firma, se soporta la firma de documentos PDF, con el estándar PDFSignature, XML con los estándares XMLDSig y XADES, y el cifrado directo de hashes soportando SHA-1 y SHA-256.
Componente de firma
Integración
Descripción
Para incluir el Componente de Firma en el sistema existente se deben realizar los siguientes pasos:
1. Instalación de los Servicios Web de Integración (AgesicFirmaWS) entregado como parte de la solución.
2. Configurar el Componente de Firma según las necesidades de firma electrónica del sistema existente.
3. Incorporación del Componente de Firma en la aplicación Web del sistema existente.
Para más detalle sobre la integración se recomienda la lectura del documento Manual Técnico Web Service Firma-Electrónica-Avanzada.doc
Configurar el componente
Para configurar el Componente de Firma se debe de realizar las siguientes configuraciones:
- En el caso de ejecutar el Componente de Firma como Applet se debe de configurar configuration.properties que se encuentra en el archivo “AgesicFirmaApplet-AgesicFirmaApplet.jar”. En el caso de ejecutarlo como Java Web Start se debe de agregar los parámetros en el archivo jnlp que ejecute dicho Componente de Firma.
- messages_LOCALE.properties donde LOCALE toma el valor del LOCALE definido. Contiene todos los mensajes y etiquetas que el Componente de Firma despliega al usuario.*
Nombre | Descripción |
---|---|
AGESIC_FIRMA_WS | La dirección del WSDL de los servicios Web de Integración |
URL_OK_POST | Url de tipo http o https donde se envía el ID de transacción una vez que se haya realizado la firma en forma correcta. |
SHOW_CONTINUE | true si visualiza el botón de continuar una vez que la firma se efectuó de forma correcta, false en otro caso |
SHOW_CLOSE | true si visualiza el botón de cerrar una vez que se carga el Componente de Firma. |
PDFSIGNATURE_APPEARANCE_ENABLED | true Si se habilita que la firma se vea en el PDF como parte del documento |
WS_REQUEST_TIMEOUT WS_CONNECT_TIMEOUT | El timeout para esperar respuesta y conexión en la invocación de los servicios Web de integración en mili segundos |
IMAGE_AGESIC | En caso de configurar un valor para esta propiedad, indicar la imagen correspondiente en base64. Esta imagen será agregada al Componente de Firma en la esquina inferior izquierda. |
IMAGE_ORG | En caso de configurar un valor para esta propiedad, indicar la imagen en base64. Esta imagen será agregada al Componente de Firma en la esquina inferior derecha. |
IMAGE_AGESIC_ORG_W | Ancho para ambas imágenes |
IMAGE_AGESIC_ORG_H | Alto para ambas imágenes |
ALADDIN_WIN / ALADDIN_LIN / ALADDIN_MAC | Rutas candidatas de la librería para el eToken Aladdin por sistema operativo. |
EPASS2003_WIN / EPASS2003_LIN / EPASS2003_MAC | Rutas candidatas de la librería para el eToken ePass3003 Auto por sistema operativo. |
LIB_ALADDIN_WIN / LIB_ALADDIN_LIN / LIB_ALADDIN_MAC | En caso que el usuario deba indicar dónde se encuentra la librería del eToken Aladdin, se le mostrará, para su sistema operativo, el nombre de la librería esperada, indicada en la propiedad correspondiente. Por ejemplo: LIB_ALADDIN_WIN= eToken.dll |
LIB_EPASS2003_WIN/LIB_EPASS2003_LIN / LIB_EPASS2003_MAC | En caso que el usuario deba indicar dónde se encuentra la librería del eToken ePass2003, se le mostrará, para su sistema operativo, el nombre de la librería esperada, indicada en la propiedad correspondiente. |
LIB_EPASS3003_WIN/LIB_EPASS3003_LIN/LIB_EPASS3003_MAC | En caso que el usuario deba indicar dónde se encuentra la librería del eToken ePass3003 Auto, se le mostrará, para su sistema operativo, el nombre de la librería esperada, indicada en la propiedad correspondiente. |
Una vez modificado el archivo de configuración es necesario realizar la firma de los jars que componen el Componente de Firma con el certificado del organismo.
Nota: los jars sólo deben tener una firma.
Incorporación del Componente de Firma como Java Web Start
Para incorporar el Componente de Firma en la aplicación Web como una aplicación JavaWeb Start, se debe:
- Crear desde la aplicación Web existente el archivo JNLP
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <jnlp codebase="$AGESIC_FIRMA_CODEBASE$" href="" spec="1.0+"> <information> <title>Agesic Firma</title> <vendor>Agesic</vendor> <homepage href=""/> <description>Agesic Firma</description> <description kind="short">Agesic Firma</description> <offline-allowed/> </information> <update check="always" policy="prompt-update"/> <security> <all-permissions/> </security> <resources> <j2se version="1.6+"/> <jar href="AgesicFirmaApplet-4.0.jar" main="true"/> <jar href="activation-1.1.jar" main="false"/> <jar href="aerogear-crypto-0.1.5.jar" main="false"/> <jar href="avalon-framework-4.1.3.jar" main="false"/> <jar href="batik-awt-util-1.6.jar" main="false"/> <jar href="batik-dom-1.6.jar" main="false"/> <jar href="batik-svg-dom-1.6.jar" main="false"/> <jar href="batik-svggen-1.6.jar" main="false"/> <jar href="batik-util-1.6.jar" main="false"/> <jar href="batik-xml-1.6.jar" main="false"/> <jar href="bcmail-jdk15-1.46.jar" main="false"/> <jar href="bcprov-jdk15-1.46.jar" main="false"/> <jar href="bctsp-jdk15-1.46.jar" main="false"/> <jar href="commons-codec-1.2.jar" main="false"/> <jar href="commons-httpclient-3.0.1.jar" main="false"/> <jar href="commons-io-2.1.jar" main="false"/> <jar href="commons-lang-2.4.jar" main="false"/> <jar href="commons-logging-1.1.jar" main="false"/> <jar href="icepdf-core-4.3.2.jar" main="false"/> <jar href="icepdf-viewer-4.3.2.jar" main="false"/> <jar href="ini4j-0.5.2.jar" main="false"/> <jar href="itextpdf-5.2.0.jar" main="false"/> <jar href="jai-codec-1.1.3.jar" main="false"/> <jar href="jai-core-1.1.3.jar" main="false"/> <jar href="java-plugin-jre-1.5.0_09.jar" main="false"/> <jar href="junit-3.8.1.jar" main="false"/> <jar href="log4j-1.2.14.jar" main="false"/> <jar href="logkit-1.0.1.jar" main="false"/> <jar href="mail-1.4.1.jar" main="false"/> <jar href="MITyCLibAPI-1.0.4.jar" main="false"/> <jar href="MITyCLibCert-1.0.4.jar" main="false"/> <jar href="MITyCLibPolicy-1.0.4.jar" main="false"/> <jar href="MITyCLibTrust-1.0.4.jar" main="false"/> <jar href="MITyCLibTSA-1.0.4.jar" main="false"/> <jar href="MITyCLibXADES-1.0.4.jar" main="false"/> <jar href="sc-light-jdk15on-1.47.0.3.jar" main="false"/> <jar href="scprov-jdk15on-1.47.0.3.jar" main="false"/> <jar href="serializer-2.7.1.jar" main="false"/> <jar href="servlet-api-2.3.jar" main="false"/> <jar href="swing-layout-1.0.3.jar" main="false"/> <jar href="UserAgentUtils-1.15.jar" main="false"/> <jar href="webservices-api-1.4.jar" main="false"/> <jar href="webservices-rt-1.4.jar" main="false"/> <jar href="xalan-2.7.1.jar" main="false"/> <jar href="xml-apis-1.3.04.jar" main="false"/> <jar href="xmlsec-1.4.2-ADSI-1.0.jar" main="false"/> </resources> <application-desc main-class="uy.gub.agesic.firma.cliente.applet.SignAppletStub"> <argument>-ID_TRANSACCION=$ID_TRANSACCION$</argument> <argument>-TIPO_DOCUMENTO=$TIPO_DOCUMENTO$</argument> <argument>-AGESIC_FIRMA_WS=$AGESIC_FIRMA_WS$</</argument> <argument>-URL_OK_POST=$-URL_OK_POST$</argument> </application-desc> </jnlp>
- El Componente de Firma debe recibir como parámetro los siguientes elementos:
Parametro | Descripción |
---|---|
ID_TRANSACCION | El identificador de la transacción el cual se obtiene al invocar a los servicios Web de integración por parte del sistema donde se está incluyendo el Componente de Firma. El identificador de la transacción es el utilizado por el Componente de Firma para invocar los servicios Web de integración. |
TIPO_DOCUMENTO | El tipo de los documentos que deberá firmar el Componente de Firma, los tipos permitidos son: xml , pdf o hash |
AGESIC_FIRMA_WS | La dirección del WSDL de los servicios Web de Integración |
URL_OK_POST | Url de tipo http o https donde se envía el ID de transacción una vez que se haya realizado la firma en forma correcta. |
CODEBASE | La URL de descarga de los archivos jar indicados en resources. |
DOCUMENTO_VISIBLE | Si el Componente de Firma debe visualizar los documentos que serán firmados. Los valores posibles son true o false |
LOCALE | El locale del archivo de mensajes |
USUARIO_DOCUMENTO | true si el documento a firmar debe de ser seleccionado por el usuario y no descargado desde los servicios Web de integración |
USUARIO_DOCUMENTO_FIRMADO | true si los documentos firmados serán almacenados por el usuario en su PC y NO deben de ser enviados al sistema existente por medio de los servicios Web de Integración. |
En caso que en el archivo html que incluye el Componente de Firma, se configuren parámetros incluidos en el archivo configuration.properties de “AgesicFirmaApplet-AgesicFirmaApplet.jar”, la aplicación tomará los indicados en el archivo JNLP.
Integración del Componente de Firma como un Applet
Advertencia: el uso del componente como Applet Java es desaconsejado, debido a que los principales navegadores ya no dan soporte para dicha tecnologia
Para incorporar el Componente de Firma en la aplicación Web como un Applet, se debe incluir el siguiente código HTML en la página correspondiente:
- Código JavaScript
<script> function getUserAgent() { return navigator.userAgent; } function cerrarApplet() { } function continuarApplet() { } </script>
La función cerrarApplet y continuarApplet debe de ser implementado según las necesidades de la aplicación Web.
La función cerrarApplet es invocada cuando se realiza clic en el botón cerrar del Componente de Firma y la función continuarApplet es invocada cuando la firma se realizó de forma correcta y se realiza clic en el botón continuar.
Un ejemplo de implementación de cerrarApplet puede ser navegar a una URL como se muestra en el siguiente ejemplo:
function getApplet(name){ if (window.document[name]) { return window.document[name]; } if (navigator.appName.indexOf("Microsoft Internet")==-1) { if (document.embeds && document.embeds[name]) return document.embeds[name]; } else { return document.getElementById(name); } } function cerrarAppletImp(){ try{ getApplet('signApplet').navegarApplet("http://www.sofis-solutions.com"); }catch(e){ } } function cerrarApplet() { cerrarAppletImp(); }
- Código HTML que incluye el Componente de Firma
<object id="signAppletStub" width="600" height="400" type="application/x-java-applet;jpi-version=1.6.0"> <param name="archive" value="AgesicFirmaApplet-3.4.jar, activation-1.1.jar, aerogear-crypto-0.1.5.jar, avalon-framework-4.1.3.jar, batik-awt-util-1.6.jar, batik-dom-1.6.jar, batik-svg-dom-1.6.jar, batik-svggen-1.6.jar, batik-util-1.6.jar, batik-xml-1.6.jar, bcmail-jdk15-1.46.jar, bcprov-jdk15-1.46.jar, bctsp-jdk15-1.46.jar, commons-codec-1.2.jar, commons-httpclient-3.0.1.jar, commons-io-2.1.jar, commons-lang-2.4.jar, commons-logging-1.1.jar, icepdf-core-4.3.2.jar, icepdf-viewer-4.3.2.jar, ini4j-0.5.2.jar, itextpdf-5.2.0.jar, jai-codec-1.1.3.jar, jai-core-1.1.3.jar, java-plugin-jre-1.5.0_09.jar, junit-3.8.1.jar, log4j-1.2.14.jar, logkit-1.0.1.jar, mail-1.4.1.jar, MITyCLibAPI-1.0.4.jar, MITyCLibCert-1.0.4.jar, MITyCLibPolicy-1.0.4.jar, MITyCLibTrust-1.0.4.jar, MITyCLibTSA-1.0.4.jar, MITyCLibXADES-1.0.4.jar, sc-light-jdk15on-1.47.0.3.jar, scprov-jdk15on-1.47.0.3.jar, serializer-2.7.1.jar, servlet-api-2.3.jar, swing-layout-1.0.3.jar, UserAgentUtils-1.15.jar, webservices-api-1.4.jar, webservices-rt-1.4.jar, xalan-2.7.1.jar, xml-apis-1.3.04.jar, xmlsec-1.4.2-ADSI-1.0.jar"/> <param name="java_arguments" value="-Xmx128m -Djava.net.preferIPv4Stack=true"/> <param name="classloader_cache" value="false"/> <param name="codebase" value="http://localhost:80/applets/1.0"> <param name="code" value="uy.gub.agesic.firma.cliente.applet.SignAppletStub"/> <!-- TIPO_DOCUMENTO=pdf, TIPO_DOCUMENTO= xml--> <param name="TIPO_DOCUMENTO" value="pdf"/> <param name="ID_TRANSACCION" value=""/> <param name="AGESIC_FIRMA_WS" value="http://localhost:8080/AgesicFirmaWS/AgesicFirmaWS?wsdl"/> <param name="URL_OK_POST" value="http://localhost:8080/WebApplicationJnlp/SignOkServlet"/> <!-- true, false--> <param name="DOCUMENTO_VISIBLE" value="true"/> <!--Locale --> <param name="LOCALE" value="en"/> <!--USUARIO_DOCUMENTO --> <param name="USUARIO_DOCUMENTO" value="false"/> <!--USUARIO_DOCUMENTO_FIRMADO --> <param name="USUARIO_DOCUMENTO_FIRMADO" value="false"/> </object>
El Componente de Firma debe recibir como parámetro los siguientes elementos:
Parametro | Descripción |
---|---|
ID_TRANSACCION | El identificador de la transacción el cual debe generar el sistema donde se está incluyendo el Componente de Firma. El identificador de la transacción es el utilizado por el Componente de Firma para invocar los servicios Web de integración. |
TIPO_DOCUMENTO | El tipo de los documentos que deberá firmar el Componente de Firma, los tipos permitidos son: xml , pdf o hash |
AGESIC_FIRMA_WS | La dirección del WSDL de los servicios Web de Integración |
URL_OK_POST | Url de tipo http o https donde se envía el ID de transacción una vez que se haya realizado la firma en forma correcta. |
DOCUMENTO_VISIBLE | Si el Componente de Firma debe visualizar los documentos que serán firmados. Los valores posibles son true o false |
CODEBASE | La URL de descarga de los archivos jar indicados en el campo “archive”. |
CODE | Especifica el nombre del archivo principal para ejecutar el Componente de Firma. |
ARCHIVE | Los jars utilizados por el Componente de Firma. El nombre de los jars se componen del nombre del mismo y de la versión utilizada: nombre-x.0.jar, donde x se corresponde al número de versión, por ejemplo, para el jar icepdf-core-4.3.2 y versión 1.0 el nombre completo del jar sería icepdf-core-4.3.2-1.0.jar |
LOCALE | El locale del archivo de mensajes |
USUARIO_DOCUMENTO | true si el documento a firmar debe de ser seleccionado por el usuario y no descargado desde los servicios Web de integración |
USUARIO_DOCUMENTO_FIRMADO | true si los documentos firmados serán almacenados por el usuario en su PC y NO deben de ser enviados al sistema existente por medio de los servicios Web de Integración. |
En caso que en el archivo html que incluye el Componente de Firma, se configuren parámetros incluidos en el archivo configuration.properties de “AgesicFirmaApplet-AgesicFirmaApplet.jar”, la aplicación tomará los indicados en el archivo html.
FirmaServer
Descripción
Firma Server tiene como rol actuar de intermediario, publicando los servicios para consumo por parte del Componente de Firma, y publicando otros servicios para consumo de la aplicación Web integrada al Componente de Firma. A continuación se presenta un diagrama de arquitectura que ilustra este diseño.
IMAGEN
Como se aprecia en la imagen anterior el Componente de Firma el cual está ejecutando en la PC del cliente que accede a la aplicación Web consume servicios Web que expone el componente Firma Server.
Adicionalmente la aplicación Web también consume servicios que expone Firma Server, por ejemplo para obtener el identificador de la transacción que define los documentos a firmar por el Componente de Firma.
Integración
El Componente de Firma internamente consume las siguientes operaciones del servicio Web de nombre AgesicFirmaWS que expone FirmaServer:
• obtenerDocumentos: recibe como parámetro el id de la transacción y retorna el conjunto de documentos a desplegar por el Componente de Firma para ser firmados por el usuario.
• comunicarDocumentos: recibe como parámetro el id de la transacción , el conjunto de documentos con la firma electrónica incorporada y el certificado (clave pública) para validación de la firma. Realiza las validaciones correspondientes y retorna el valor 0 en caso que la operación se haya efectuado en forma correcta, o el valor 1 en otro caso, retornando un mensaje genérico de error al usuario.
La aplicación Web que integra el Componente de Firma podrá consumir las siguientes operaciones del servicio Web de nombre AgesicFirmaServerWS que expone Firma Server:
• firmarDocumentos: recibe como parámetro un conjunto de documentos para firmar, junto con el tipo de documento del que se trata (tipo de firma a realizar), los almacena en la tabla de transacciones internas que mantiene Firma Server asociados a un ID de Transacción aleatorio que generará en el momento, y devuelve dicho ID a la aplicación Web para que le quede como referencia.
• obtenerDocumentosFirmados: recibe como parámetro el id de la transacción y devuelve el conjunto de Documentos firmados, junto con la información de la validación de la firma y certificado correspondiente, eliminando la solicitud de la tabla interna en el proceso.
Configuración
Para configurar el servicio web, se debe configurar en el archivo configuration.properties, ubicado en \AgesicFirmaWS\src\java\org\agesic\firma\config, las siguientes propiedades:
Nombre | Descripción |
---|---|
SIGN_ALG | Algoritmo de firma SHA1withRSA o SHA256withRSA. Debe coincidir con el configurado en el Componente de Firma |
TIME_RUN_CLEAN_BD_MS | Cada cuánto se verifican los datos para eliminar aquellos caducados, en milisegundos. Cada 1 día por defecto |
CLEAN_EXPIRED_AFTER | Tiempo que se considera que un registro a caducado, en milisegundos. Configurado en 1 hr por defecto. |
Instalación
Firma Server es un WAR de nombre AgesicFirmaWS.war el cual puede ser instalado en Tomcat o en Jboss 7.
Firma Server mantiene una tabla de transacciones, para lo cual debe acceder a una Base de datos la cual debe ser configurada previa a la instalación.
El nombre de la base de datos es AGESIC_FIRMA, las tablas necesarias por Firma Server son creadas por este, pero si debe existir previamente la base de datos creada.
Para instalar Firma Server en Jboss 7 debe:
• Utilizar la versión del componente AgesicFirmaWS.war para Jboss
• Configurar en el archivo de configuración de Jboss (por ejemplo standalone.xml o domain.xml según el nodo utilizado) la configuración para Web Service agregando al subsistema urn:jboss:domain:webservices
<subsystem xmlns="urn:jboss:domain:webservices:1.1">
<modify-wsdl-address>true</modify-wsdl-address>
<wsdl-host>jbossws.undefined.host</wsdl-host>
<endpoint-config name="Standard-Endpoint-Config"/>
<endpoint-config name="Recording-Endpoint-Config">
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>
</pre-handler-chain>
</endpoint-config>
</subsystem>
• Agregar en el Jboss el módulo con el driver de la base de datos a utilizar.
o Acceda a la carpeta {JBOSS_HOME}/modules y dentro de la carpeta modules se debe crear la siguiente estructura de directorios según el motor de base de datos a utilizar, por ejemplo para postgresql: org\postgresql\main
o Luego, en la carpeta main, se deben copiar el archivo con el driver JDBC del motor de la base de datos y crear el archivo module.xml, por ejemplo para el caso de postgresql el archivo module.xml es de la siguiente forma:
<module xmlns="urn:jboss:module:1.0" name="org.postgresql">
<resources>
<resource-root path="postgresql-9.1-902.jdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
Donde postgresql-9.1-902.jdbc4.jar es el jar copiado a la carpeta
org\postgresql\main
• Configurar en el Jboss el Data Source necesario
o Configurar en el archivo de configuración de Jboss (por ejemplo standalone.xml o domain.xml según el nodo utilizado) el Data Source agregando al subsistema urn:jboss:domain:datasources un nuevo Data Source
<datasource jndi-name="java:jboss/datasources/agesic-firma" pool-name="agesic-firma" enabled="true" use-java-context="true">
<connection-url>jdbc:{MOTOR_BD}://{host}:{port}/AGESIC_FIRMA</connection-url> <driver>agesic_firma_d</driver>
<security>
<user-name>{user}</user-name>
<password>{password}</password>
</security>
</datasource>
Remplazar “{host}” y “{port}” por la dirección IP y número de puerto donde escucha el motor de bases de datos.
Remplazar “{user}” y “{password}” por el nombre de usuario y la contraseña del servidor de base de datos.
Remplazar “{MOTOR_BD}” por el correcto dependiendo del motor de la base de datos por ejemplo para postgresql reemplazar con el valor postgresql
A continuación, en el mismo archivo de configuración del jboss y aún dentro del mismo subsistema, ir hasta la sección <drivers> y copiar el siguiente texto:
<driver name="agesic_firma_d" module="{MODULE_NAME}">
<driver-class>{CLASS_DRIVER}</driver-class>
</driver>
Remplazar “{ MODULE_NAME}” por el nombre definido en el archivo module.xml, para el ejemplo postgresql indicado es el valor org.postgresql
Remplazar “{CLASS_DRIVER }” por el nombre de la clase correcta del driver JBDC del motor, para el caso de postresql el valor: org.postgresql.Driver
• Configurar AgesicFirmaWS según el capitulo anterior
• Deployar el War en el Jboss.
Para instalar Firma Server en Tomcat debe:
• Utilizar la versión del componente AgesicFirmaWS.war para Tomcat
• Incluir el driver de la base de datos utilizada en el WAR en la carpeta WEB-INF/lib
• Configurar el acceso a la base de datos editando el archivo persistence.xml incluido en AgesicFirmaWS.war
o Editar el archivo de nombre persistence.xml que se encuentra en WEB-INF\classes\META-INF y modificar los valores de las siguientes propiedades por los correctos.
• hibernate.connection.url: La URL de conexión a la base de datos, depende del manejador de base de datos seleccionado
• hibernate.connection.username: El usuario para acceder a la base de datos AGESIC_FIRMA.
• hibernate.connection.password: La contraseña para acceder a la base de datos AGESIC_FIRMA.
• hibernate.connection.driver_class: El driver JDBC del manejador
• hibernate.dialect: el dialecto de la base de datos a utilizar, la lista de dialectos validos se encuentra en la documentación de Hibernate http://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/dialect/package-summary.html
• Configurar AgesicFirmaWS según el capitulo anterior
• Deployar el war en el Tomcat.