Registro di controllo aziendale-libreria o approccio consigliati? [chiuso]
Conosci qualche buona libreria Java per la registrazione dell'audit? O almeno un buon libro / articolo per aiutare a scegliere un buon approccio per creare un registro di controllo per un'applicazione?
Requisiti della libreria:
- definire i metadati di audit comuni (UserID, tempo, IP,...)
- definire i tipi di messaggio di controllo (transazione inviata, messaggio ricevuto, ...)
- bloccare / firmare singoli messaggi di controllo (per non ripudio)
- ricerca registro di controllo sulla base di metadati
- ecc.
Modifica:
Sono non cercando una soluzione automatizzata, sono perfettamente felice di chiamare qualcosa come:
AuditEvent event = new TransactionSentEvent(userId, account, amount, ...)
AuditLog.audit(auditEvent);
Il punto è avere l'infrastruttura dietro l'it: archiviazione sicura nel database, non reputabilità ecc.
5 answers
E questo https://github.com/dima767/inspektr Ho quasi gli stessi requisiti che hai descritto sopra e sto scavando in inspektr.
Quindi, se stai cercando un framework, puoi provare logback-audit. È dalle persone che sono dietro la libreria di registrazione Java, logback .
Se si utilizza Java, un modo è usare springframework e aop. Questa è l'opzione più flessibile. Ecco un esempio
Puoi farlo anche a livello di database usando hibernate (maggiori informazioni)
È possibile utilizzare la libreria AscpectJ senza Spring, tramite annotazioni
Un buon approccio alla registrazione a livello di attività/operazione consiste nel determinare esattamente cosa è necessario registrare. L'hai già fatto.
Non hai davvero bisogno di alcun nuovo framework o AOP da aggiungere. Tuttavia, hai alcuni requisiti aggiuntivi che ti impediscono di utilizzare i framework di registrazione comuni come Log4J o java.util.registrazione senza creare più lavoro.
L'approccio più semplice che posso pensare che tu possa fare è avere una classe di audit che ha una connessione JDBC iniettata o configurata dentro. Questo può essere fatto attraverso la primavera se si sta già utilizzando quel framework. Se non si dispone di un contenitore DI, è necessario definirlo come un singleton.
Un'altra cosa di cui hai bisogno è una capacità di firma. Java ha un java.sicurezza.Firma per firmare e verificare i dati.
Come ho detto prima hai requisiti che ti impediscono di utilizzare i framework di registrazione disponibili. Cioè:
- registro di controllo di ricerca basato sui metadati
Per te facilitare la ricerca è necessario memorizzare i dati in un database come scrivere in un file di testo sarà difficile da fare. Usando i framework di registrazione devi imparare l'API ed essere legato al framework che non fa parte dello standard.