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