Saltar a contenido

Configuracion de SSigner API REST

Propiedades de Aplicacion

server:
  port: ${SERVER_PORT:8080}

spring:
  application:
    name: ssigner-api
  datasource:
    url: ${DB_URL:jdbc:postgresql://<DB_HOST>:5432/ssigner}
    username: ${DB_USERNAME:ssigner}
    password: ${DB_PASSWORD:<DB_PASSWORD>}
  jpa:
    hibernate:
      ddl-auto: update

application:
  security:
    jwt:
      secret-key: ${JWT_SECRET_KEY:<JWT_SECRET>}
      expiration: ${JWT_EXPIRATION:86400000}
      refresh-token:
        expiration: ${JWT_REFRESH_EXPIRATION:604800000}

ssigner:
  base:
    path: ${SSIGNER_BASE_PATH:/opt/ssigner}

server:
  tomcat:
    threads:
      max: 300
      min-spare: 20
    max-connections: 10000
    accept-count: 100

Variables de Entorno

Variable Descripcion Default
SERVER_PORT Puerto del servidor 8080
DB_URL URL de PostgreSQL jdbc:postgresql://<DB_HOST>:5432/ssigner
DB_USERNAME Usuario de BD ssigner
DB_PASSWORD Contrasena de BD -
JWT_SECRET_KEY Clave secreta JWT (64 chars Base64) -
SSIGNER_BASE_PATH Ruta base de archivos /opt/ssigner

Configuracion SSigner Predeterminada

Ubicacion: src/main/resources/ssigner-config_predeterminado.properties

glosa.url=<GLOSA_URL>
glosa.barras.habilitar=false
glosa.qr.habilitar=true
glosa.contenido=Esta es una representacion impresa...

tsa.url=<TSA_URL>
tsa.usuario=<TSA_USER>
tsa.clave=<TSA_PASSWORD>

firma.tipo=1
firma.coordenadas.unidad=pixeles
firma.coordenadas.convertir.desde.pixeles=true
ssigner.log.level=info

Estructura de Carpetas por Firmante

{ssigner.base.path}/
└── {idFirmante}/
    ├── entrada/
    │   ├── documento1.pdf
    │   ├── documento1.pdf.prefirma
    │   ├── documento1.pdf.prefirma.sha256
    │   ├── documento1.pdf.prefirma.firmado
    │   └── *.txt (indice de documentos)
    ├── salida/
    │   └── documento1_signed.pdf
    ├── imagen/
    │   └── firma.png
    ├── cache/
    │   └── certificado.pem
    └── config/
        ├── *.properties (config comun)
        ├── *_doc.properties (config individual)
        └── *.txt

DTOs Principales

Autenticacion

DTO Campos
RegistrarPeticion email, password, name
AutenticarPeticion email, password
TokenRespuesta jwtToken, refreshToken

Grupos de Firma

DTO Campos
IniciarGrupoProcesoFirmaPeticion idFirmante, idProceso, documentos[], configuracionesComunes[], imagen
DocumentoConfiguracion nombre, codigo, contenido, configuraciones[], imagenBytes
IniciarGrupoProcesoFirmaRespuesta gruProFirId, estado, mensaje, propiedades
VerificarGrupoFirmadoRespuesta estado, mensaje, gpf{documentos[]}
EstadoGrupoFirmaRespuesta grupoId, estadoGrupo, totalDocs, docsListos, readyToDownload

SSigner

DTO Campos
GenerarHashPrefirmaPeticion idGP, idFirmante, certifcadoPublicoFirmante, userMotivo, userLocacion
GenerarHashPrefirmaRespuesta hashes[], estado, mensaje, algoritmo, propiedades, nombresDocumentos
InsertarHashFirmadoPeticion idpg, hashesFirmados[]