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.
-
Open JDK 11
-
WildFly Application Server 26.1.1.- Para desplegar la aplicación se necesita un servidor de aplicaciones Java EE 11 disponible en wildfly.org
-
Maven 3.- Para compilar y empaquetar se utiliza Apache Maven.
-
Postgresql 12.6 o superior
-
Proyecto firmadigital-libreria compilado
Para compilar se debe ejecutar el siguiente comando:
mvn clean package
Esto produce el WAR en target/fservicio.war
Se debe generar una llave a través de la clase `token/jwt/ServicioTokenJwt.java y el resultado configurarlo dentro del archivo de configuración Wildfly en la siguiente sección
</extensions>
<system-properties>
<property name="jwt.key" value="value="tYdX9if......=="/>
</system-properties>
<management>
Se debe comentar el siguiente código dentro de la clase crl/ServicioDescargaCrl.java
para generar el compilado que no realice descargas de CRL
@PostConstruct
public void init() {
crearTablaSiNoExiste();
importarCrls();
}
Después de este proceso, se descomentará y se generará otro compilado para el servidor que realice las descargas de CRL
Para facilitar el desarrollo se puede utilizar Docker. Se puede instalar las dependencias de infraestructura, como la base de datos, utilizando contenedores. 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
Se necesita un registro en la tabla "sistema" para poder probar, para lo cual primero generamos un hash SHA256 utilizando cualquiera de las siguientes dos opciones:
Opción 1:
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-256 del API-KEY, a insertar en la base de datos, es $API_KEY_HASH"
Opción 2:
En la tabla "sistema" de la base de datos se debería insertar el hash generado (Para el ambiente de DESARROLLO o PRODUCCION):
# Para crear:
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');
# Para actualizar:
UPDATE sistema
SET url = 'http://localhost:7776/recepcion/receiveDocument/saveSignedFile',
apikey = '$API_KEY_HASH',
apikeyrest = '$API_KEY_HASH',
descripcion = 'Módulo de certificación electrónica',
nombre = 'mce'
WHERE id = 1;
Para configurar el DataSource de PostgreSQL que apunta al contenedor, en WildFly se puede ejecutar el siguiente script para JBoss CLI:
Ejecutar 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
Usamos SemVer para versionar.
-
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.