Los siguientes pasos le permitirán obtener una copia del proyecto para correrla en la máquina local para propósitos de desarrollo y pruebas.
-
JDK 11
-
WildFly 33.- Para desplegar la aplicación se necesita un servidor de aplicaciones Jakarta EE 10 disponible en wildfly.org
-
Maven 3.- Para compilar y empaquetar se utiliza Apache Maven.
-
Postgresql 12.6 o superior
-
Librería firmadigital-libreria compilada para realizar las operaciones de firma digital.
-
Servicio web certificacion-electronica-documentos para recepción temporal de documentos firmados.
Opción 1:
Se puede utilizar Docker. Por ejemplo, para ejecutar un servidor PostgreSQL 12, se puede ejecutar:
docker run -d --name postgresql_firmadigital -e POSTGRESQL_USER=firmadigital -e POSTGRESQL_PASSWORD=firmadigital -e POSTGRESQL_DATABASE=firmadigital -p 5432:5432 centos/postgresql-12-centos7
Opción 2:
Instalar Postgresql localmente.
-
Descargar driver de PostgreSQL:
sudo wget https://jdbc.postgresql.org/download/postgresql-42.2.13.jar
-
Generar una llave JWT ejecutando la clase
token/jwt/ServicioTokenJwt.java
, y el resultado configurarlo en el archivo/opt/wildfly/standalone/configuration/standalone.xml
en la siguiente sección:
</extensions>
<system-properties>
<property name="jwt.key" value="value="tYdX9if......=="/>
</system-properties>
<management>
-
Iniciar el servidor Wildfly:
/opt/wildfly/bin/standalone.sh
-
Configurar datasource
Para configurar el DataSource de PostgreSQL que apunta al contenedor, en WildFly ejecutar el siguiente script para JBoss CLI:
Ejecutar /opt/wildfly/bin/jboss-cli.sh -c
y luego el siguiente script:
batch
module add --name=org.postgresql --resources=/home/Downloads/postgresql-42.2.13.jar --dependencies=javax.api,javax.transaction.api
/subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=org.postgresql,driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource)
data-source add --name=FirmaDigitalDS --jndi-name=java:/FirmaDigitalDS --driver-name=postgresql --connection-url=jdbc:postgresql://localhost:5432/firmadigital --user-name=firmadigital --password=firmadigital --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter
run-batch
Compilar ejecutando el siguiente comando:
mvn clean package
Esto produce el WAR en target/servicio.war el cual debe ser copiado en el directorio /opt/wildfly/standalone/deployments/
Al desplegar dicho archivo se crearán las tablas necesarias automaticamente.
-
Generar un hash SHA-256 utilizando cualquiera de las siguientes opciones:
Opción 1:
MacOS:
export API_KEY=$(openssl rand -base64 32 | shasum -a 256 | cut -d' ' -f1)
echo "El API-KEY a utilizar es: $API_KEY"
export API_KEY_HASH=$(echo -n $API_KEY | shasum -a 256 | cut -d' ' -f1)
echo "El hash SHA-256 del API-KEY a insertar en la base de datos es: $API_KEY_HASH"
Linux:
export API_KEY=$(pwgen 32 -1 | sha256sum | cut -d' ' -f1)
echo "El API-KEY a utilizar es: $API_KEY"
export API_KEY_HASH=$(echo -n $API_KEY | sha256sum | cut -d' ' -f1)
echo "El hash SHA-256 del API-KEY a insertar en la base de datos es: $API_KEY_HASH"
Opción 2:
-
Guardar apiKey
En la tabla "sistema" de la base de datos de firmadigital insertar el hash SHA-256 generado, en el campo url se debe insertar el endpoint a utilizar para receptar el documento firmado (certificacion-electronica-documentos)
INSERT INTO sistema(id, url, apikey, apikeyrest, descripcion, nombre)
VALUES (1, 'http://localhost:7776/recepcion/receiveDocument/saveSignedFile', '$API_KEY_HASH', '$API_KEY_HASH', 'Módulo de certificación electrónica', 'mce');
Usamos SemVer para versionar.
Se ha realizado pequeños ajustes en las siguientes clases java del proyecto: - ServicioDescargaCrl - TokenTimeout - ServicioDocumento - ServicioEliminacionDocumento - ServicioSistemaTransversal
-
Juan Diego Calle - Desarrollo inicial - Soporte Libre
-
Ricardo Arguello - Desarrollo - Soporte Libre
-
Misael Fernández - Desarrollo - misael.fernandez.correa@gmail.com
Este proyecto está licenciado bajo la licencia AGPL v3. Revise el archivo LICENSE para más detalles.