2010-09-23 17 views
12

conosci qualche buona libreria Java per la registrazione di audit? O almeno un buon libro/articolo per aiutare a scegliere un buon approccio per creare un registro di controllo per un'applicazione?Registro di controllo aziendale: libreria o approccio consigliati?

requisiti Biblioteca:
- definire i metadati comune di audit (userId, tempo, IP, ...)
- definire i tipi di messaggio di controllo (transazione inviato, il messaggio ricevuto, ...)
- blocco/firmare i messaggi individuali di controllo (per il non ripudio)
- Ricerca registro di controllo in base ai metadati
- ecc

Edit:
non sto Looki ng per soluzione automatizzata, io sono perfettamente felice con chiamare qualcosa come:

AuditEvent event = new TransactionSentEvent(userId, account, amount, ...) 
AuditLog.audit(auditEvent); 

Il punto è quello di avere l'infrastruttura dietro di esso - l'immagazzinamento sicuro a base di dati, non reputability ecc

risposta

1

che dire di questo https://github.com/dima767/inspektr Ho quasi gli stessi requisiti come descritto sopra e sto scavando in inspektr.

+0

Cool, questo è esattamente quello che stavo cercando! – krtek

4

Se si utilizza Java, un modo è usare springframework e aop. Questa è l'opzione più flessibile. Here is an example

Si può anche farlo a livello di database usando Hibernate (more info)

+0

Se dovessi farlo di nuovo, lo farei così. Tuttavia, è necessario strutturare la propria logica aziendale in modo molto preciso per far sì che funzioni come l'intercettazione dei metodi non sempre fornisce i dettagli ottenuti all'interno di un metodo (ad esempio se si cerca un account all'interno di un metodo e si desidera verificare alcune proprietà non-id dell'account (come il valore corrente) non sarà disponibile per l'intercettore - quindi è necessario dividere il metodo in due - in modo che tutte le proprietà che si desidera controllare siano nell'intervallo di intercettazione del metodo. – Justin

+0

Grazie per la risposta - in effetti sono più alla ricerca di un controllo di "livello superiore" rispetto al metodo o al livello di classe – krtek

+0

Questa risposta mi è molto utile, preferisco optare per l'opzione Hibernate.;) – huahsin68

1

È possibile utilizzare biblioteca AscpectJ senza molla, tramite annotazioni

+0

Sì, è vero, ho dimenticato di dirlo. Grazie. – surajz

0

Un buon approccio per la registrazione livello di business/operazione è quello di determinare che cosa esattamente è necessario per accedere. L'hai già fatto.

Non è necessario aggiungere alcun nuovo framework o AOP. Tuttavia, hai alcuni requisiti extra che ti impediscono di utilizzare i comuni framework di registrazione come Log4J o java.util.logging senza creare più lavoro.

L'approccio più semplice che riesco a pensare è che è possibile avere una classe di controllo che ha una connessione JDBC iniettata o configurata al suo interno. Questo può essere fatto attraverso Spring se si sta già usando quel framework. Se non si dispone di un contenitore DI, è necessario definirlo come un singleton.

Un'altra cosa di cui hai bisogno è la possibilità di firmare. Java ha un java.security.Signature per firmare e verificare i dati.

Come ho detto in precedenza, sono presenti requisiti che impediscono l'utilizzo dei framework di registrazione disponibili. Cioè:

  • ricerca registro di controllo in base ai metadati

Per voi per facilitare la ricerca è necessario memorizzare i dati in un database come la scrittura su un file di testo sarà difficile da fare. Utilizzando i framework di registrazione devi imparare l'API ed essere legato al framework che non fa parte dello standard.

10

Quindi, se stai cercando un framework, puoi provare a logback-audit. È dalla gente che si trova dietro la libreria di registrazione Java, logback.

+0

Grazie! Stavo cercando questo ... – krtek

+3

NB: logback-audit è un software commerciale –

Problemi correlati