Problema con el STAMPER BETA

Hola Comunidad, hice una prueba de configuración para poner en funcionamiento el stamper de araí documentos. creé el archivo p12 con el certificado firmado y la clave privada para utilizar en araí documentos, y también seguí todos los pasos indicados en la guía. Pero al momento de hacer el deploy de araí documentos, sale el siguiente error. (Error en el servicio del stamper)


2020-10-16 10:04:39	
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'signatureController': Unsatisfied dependency expressed through field 'signService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'signService': Unsatisfied dependency expressed through field 'keystoreService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'keystoreService': Invocation of init method failed; nested exception is java.lang.NullPointerException
	
2020-10-16 10:04:39	
2020-10-16 13:04:39.425 ERROR 1 --- [           main] o.s.boot.SpringApplication               : Application run failed
	
2020-10-16 10:04:39	
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.

Luego, también falla al querer cerrar/autorizar un documento.

¿Alguna idea de donde puede estar el problema?

Gracias!

Hola Diego,

El error se da porque no puede inicializar el Keystore. Lo primero que te podés fijar es si existe el application.properties y está bien el archivo. Y después fijate que entre las variables tengas esto:

keystore.type=PKCS12
keystore.location=${KEYSTORE_LOCATION}
keystore.password=${KEYSTORE_PASSWORD}
keystore.alias=${KEYSTORE_ALIAS}

resource.protocol=file
resource.base=config

y sobre todo que las variables de entorno KEYSTORE_LOCATION, KEYSTORE_PASSWORD Y KEYSTORE_ALIAS no estén en nulo.

Saludos !

Buenísimo Pablo! Muchas gracias!

En este momento ya tengo funcionando el estampador. Con algunas variaciones a lo que me dijiste de hacer (pues algunas cosas eran distintas), lo mas importante fue el descomentar las lineas resource.protocol y resource.base (creo que no estaba en la documentacion, o me lo salteé)

Gracias!

Estimados, buen dia!
He descomentado las lineas en docs.yml para activar el stamper, pero al correr el docker me sale lo siguiente:
docker stack deploy --with-registry-auth -c docs.yml docs
services.docs-worker.configs must be a list

Esta es mi seccion del docs.yml, le esta faltando algo?

docs-worker:
image: hub.siu.edu.ar:5005/siu/expedientes/docs-api:hotfix_1.0.7
env_file:
- ./docs.env
secrets:
- docs_api_pass
- docs_db_pass
- docs_repo_pass
- docs_conexion_usuarios
- docs_conexion_sudocu
entrypoint:
- /entrypoint.sh
- --reconfigure
- --no-validar-servicios
- --worker-mode
networks:
red-siu:
deploy:
resources:
limits:
cpus: ‘0.25’
memory: 128M
reservations:
cpus: ‘0.1’
memory: 20M
mode: replicated
replicas: 1
restart_policy:
condition: any
delay: 10s
max_attempts: 4
window: 120s

stamper:
 image: ungs/sudocu-estampador:latest
 networks:
   red-siu:
 env_file:
   - ./docs_stamper.env
 secrets:
   - source: docs_stamper_keystore
     target: /app/classes/config/keystore.p12

 configs:
   - source: docs_stamper_config
     target: /app/classes/config/application.properties
 deploy:
   resources:
     limits:
       cpus: '0.25'
       memory: 512M
     reservations:
       cpus: '0.1'
       memory: 20M
   mode: replicated
   replicas: 1
   restart_policy:
     condition: any
     delay: 10s
     max_attempts: 4
     window: 120s

configs:
   docs_stamper_config:
     file: ./application.properties

Muchas gracias!

Hola Javier!

Revisa la indentación de los servicios que descomentaste. Tene en cuenta que utiliza espacios y no tabs.
Si podes adjunta el yml

Hola! ahi adjunte el yml!
Por otro lado te consulto, el servicio que se levanta para el stamper, puede ser consumido desde afuera , mediante una URL?

Muchas gracias!


docs.zip (1.06 KB)

Hola Javier!

El archivo que adjuntas tiene mal la indentación, stamper es un servicio mas y tiene que estar indentado a la misma altura que api y worker.

Como se menciona en la documentación, el stamper esta en una versión beta, pero si, si lo dejan habilitado podrian consumirlo desde otra aplicación.

Saludos!

Hola! les consulto por el despliegue del docs_stamper,
Me esta saliendo el error como se comento en uno mensaje anterior “java.io.FileNotFoundException: resource.base=/app/classes/config/keystore.p12”
Hemos generado el keystore “keystore.p12”

En docs_stamper.env tengo (He probado asi y con la ruta absoluta al keystore):
ARAI_DOCS_STAMPER_KEYSTORE=keystore.p12

Saben por que otro problema me aparece el “FileNotFoundException” ?

El docs.yml contiene:

stamper:
image: ungs/sudocu-estampador:latest
networks:
red-siu:
env_file:
- ./docs_stamper.env
secrets:
- source: docs_stamper_keystore
target: /app/classes/config/keystore.p12

configs:
  - source: docs_stamper_config
    target: /app/classes/config/application.properties
deploy:
  resources:
    limits:
      cpus: '0.25'
      memory: 512M
    reservations:
      cpus: '0.1'
      memory: 20M
  mode: replicated
  replicas: 1
  restart_policy:
    condition: any
    delay: 10s
    max_attempts: 4
    window: 120s

configs:
docs_stamper_config:
file: ./application.properties

Muchas gracias!

Hola Javier,

En https://expedientes.siu.edu.ar/docs/arai/#crear-firma-de-sistema se referencia como tener una firma de sistema creada y se muestra como crear el secret con ella. Supondría que está faltando eso.

Una prueba de fuego es conectarte al contenedor del stamper y evaluar el contenido del archivo /app/classes/config/keystore.p12 para ver si corresponde con la firma de sistema que generaron…

Saludos!

Hola Sergio, me conecte al contenedor y en el mismo tengo el keystore que cree

/app/classes/config # ls -la
total 16
drwxr-xr-x 2 root root 4096 Feb 25 15:48 .
drwxr-xr-x 1 root root 4096 Feb 25 15:48 …
-r–r–r-- 1 root root 520 Feb 25 15:48 application.properties
-r–r–r-- 1 root root 2708 Feb 25 15:48 keystore.p12
/app/classes/config # pwd
/app/classes/config

/app/classes/config # cat application.properties
spring.servlet.multipart.max-file-size=128KB
spring.servlet.multipart.max-request-size=128KB

keystore.type=PKCS12
keystore.location=${ARAI_DOCS_STAMPER_KEYSTORE}
keystore.password=${ARAI_DOCS_STAMPER_KEYSTORE_PASS}
keystore.alias=${ARAI_DOCS_STAMPER_KEYSTORE_ALIAS}

signature.imagePath=${ARAI_DOCS_STAMPER_LOGO}
signature.bgcolor=#f0f0f0
signature.systemLabel=Sistema
signature.system=SUDOCU
signature.showLogo=true

stamper.title=Hoja de firmas

resource.protocol=file
resource.base=resource.base=/app/classes/config

De todas formas veo que el contenedor se reinicia cambiando de nombre cada unos minutos

Efectivamente mi archivo application.properties contenia un error de escritura!
Saludos!

Buenas, consulta: estamos trabajando sobre una instancia de EEI versión 1.1.1 y tenemos inconvenientes con la configuración de Stamper Beta.
Seguimos la documentación sin problemas, pero al momento de desplegar el stack de Arai-Documentos nos arroja instantáneamente el siguiente error y se detiene la ejecucion:

yaml: line 82: did not find expected key

(captura1)

Repasamos y volvimos a ejecutar todo lo realizado inclusive la generacion de Keys pero no salimos de ese error.
Lo que nos resulta extraño es que el error es arrojado inmediatamente. Me hace pensar en un error de sintaxis o algo por el estilo en algunos de los archivos de configuración.
Dato: sin la configuración de Stamper, el modulo de Arai-Documentos levanta sin problemas.
Espero puedan ayudarnos, son varios pasos, quizás por el error pueda reconocer de donde venga.
Muchas gracias!


error_arai_documentos.png

error_arai_documentos.png

Hola Adrían,

Es un error en el archivo docs.yml en el formato (como lo están suponiendo).

Revisen bien como queda armado y/o adjunten un ejemplo para poder verlo. Tengan en cuenta que no pueden poner tabs, la identación es crucial, etc.

Hola Sergio, buen día, te adjunto el archivo yml ya que probamos tu sugerencia y no nos funcionó. Quizás vos al verlo encuentres cual es nuestra falla…
Desde ya te agradecemos la ayuda, saludos!


docs_yml.zip (1.03 KB)

Hola!

https://codebeautify.org/yaml-validator/cb332559

Es un validador online del formato YAML. Podes ver que la parte de “stamper” arranca con 3 espacios, si eliminas 1 ya está validando… prueben.

Saludos!

Genial Sergio, muchas gracias!
Me funcionó la solución que me brindaste. Saludos!