lunes, 30 de octubre de 2017

Ejemplo 2017-10: Logging encriptado.

Resumen: 
Generar (archivos) log encriptados.

Descripción: 
Como parte del proyecto, se solicitó que las aplicaciones generen log de forma encriptada. Considerando que, luego deben ser descriptados para hacer el seguimiento, se programó una librería para encriptar textos y genere los archivos en formato CSV.


La implementación es sobre Logback. En el ejemplo, se puede apreciar lo cómodo que es trabajar con Groovy.

Necesitamos declarar el regla de conversión (CryptoConverter). También, para generar el encabezado se creó la clase LogFileHeaderPatternLayout. El resto, corresponde a código de la librería: RollingFileAppender, rollingPolicy(SizeAndTimeBasedRollingPolicy), etc.

Este es el resultado:
con,level,thread,msg
2017-10-30 14:43:06.123, INFO,[main],fqNSg3GrkKMcIePoF7kp+IQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:43:06.708, INFO,[main],rvYt6ocFGKwfP4NwqBjdvoQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:43:06.711, INFO,[main],vpQjYtxnBzVozdz6gFi41YQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:43:06.711, INFO,[main],9tC9J61SG0VnSggUsoTvNoQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:43:06.712, INFO,[main],FNxzsBSmSRvE5jsreFpozoQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:43:06.712, INFO,[main],frK6YUhunjkqKrdqVVJy1oQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:43:06.713, INFO,[main],IU2ziwUlZ0SNwMrOc3HYBoQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:43:06.713, INFO,[main],H/jY5wKj7MowivuD9IhG9YQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:43:06.713, INFO,[main],e/DVEVuDH1rhWuT2RkEFL4QiglN9YE2/DxeZD65QlMs=
2017-10-30 14:43:06.714, INFO,[main],BiHncd7iAAm3H2BN+IrHH10C3QWEtrturo3ec+v9j1s=
2017-10-30 14:45:17.643, INFO,[main],fqNSg3GrkKMcIePoF7kp+IQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:45:18.227, INFO,[main],rvYt6ocFGKwfP4NwqBjdvoQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:45:18.228, INFO,[main],vpQjYtxnBzVozdz6gFi41YQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:45:18.228, INFO,[main],9tC9J61SG0VnSggUsoTvNoQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:45:18.229, INFO,[main],FNxzsBSmSRvE5jsreFpozoQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:45:18.229, INFO,[main],frK6YUhunjkqKrdqVVJy1oQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:45:18.230, INFO,[main],IU2ziwUlZ0SNwMrOc3HYBoQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:45:18.230, INFO,[main],H/jY5wKj7MowivuD9IhG9YQiglN9YE2/DxeZD65QlMs=
2017-10-30 14:45:18.231, INFO,[main],e/DVEVuDH1rhWuT2RkEFL4QiglN9YE2/DxeZD65QlMs=
2017-10-30 14:45:18.231, INFO,[main],BiHncd7iAAm3H2BN+IrHH10C3QWEtrturo3ec+v9j1s=

Código Fuente.- 
https://github.com/edgargs/util-encrypt.git

Configuración: 
Groovy 2.4.12
Gradle 3.5
Java 1.8