1
我一直在進行應用程序審計,併成功地連接了Hibernate Envers 4.3.11以捕獲創建,更新和刪除,但我無法找到關於審計實體讀取的任何文檔。如何審覈Hibernate讀Envers?
Envers可能嗎?還是最好依靠log4j或類似的東西?
我一直在進行應用程序審計,併成功地連接了Hibernate Envers 4.3.11以捕獲創建,更新和刪除,但我無法找到關於審計實體讀取的任何文檔。如何審覈Hibernate讀Envers?
Envers可能嗎?還是最好依靠log4j或類似的東西?
我相信這是不可能的。我們有類似的用例,我們使用intercepters來生成我們服務的審計記錄。
是的,Hibernate Envers可能會審計實體的讀取。 以下是從第一版修訂表中讀取記錄的示例。
/*Audit Reader*/
public AuditReader getAuditReader() {
return AuditReaderFactory.get(getCrntSession());
}
/*The method to read a record from an entity*/
Integer revisionNumber = (Integer) getAuditReader().createQuery()
.forRevisionsOfEntity(Employee.class, false, true)
.addProjection(AuditEntity.revisionNumber().min())
.getSingleResult();
AuditReader reader = getAuditReader();
Employee emp=reader.findRevision(Employee.class, (Number)revisionNumber);
/* and if Employee has an createdDate record , we can read it using below*/:
System.out.println(emp.getCreatedDate());
這看起來像找到以前審計過的記錄。我想在每次讀取實體後在審計表中存儲一條記錄。我一直在研究,看來envers不會支持這個操作。可能將不得不攔截請求並直接登錄到文件或數據庫。 – wsams