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[] |