Access tracking (until v4.9.1)
Since v5.0 AccessTracking is not included in the distribution. You can use the new AccessTracker of OpenXava or Hibernate Envers, create your own listener or get AccessTracking from an older distribution.
Until OpenXava 4.9.1 the
AccessTracking project was included in distribution by default. This project defines an
entity listener that allows you to track all access to the data in your application. Actually, this project allows your application to comply the Spanish Data Protection Law (Ley de Protección de Datos) including high level security data. Although it's generic enough to be useful in a broad variety of scenarios.
Applying the listener
When you apply this listener to your entity, then the code of
AccessTrackingListener is executed each time a object is created, loaded, modified or removed.
AccessTrackingListener writes a record into a database table with information about the access.
In order to apply this listener you only need to write this in your entity code:
@Entity
@EntityListeners(AccessTrackingListener.class)
public class Warehouse {
In this simply way, only one line, all accesses to
Warehouse entities will be record in a database table.
Setup AccessTracking
If you want to use the
AccessTracking in your project you have to follow the next setup steps:
- Add AccessTracking as referenced project: Inside Eclipse click right button on your project and go to Properties > Java Build Path > Projects.
- Create the table in your database to store the tracking of accesses. You can find the CREATE TABLE in AccessTracking/data/access-tracking-db.script file.
- Inside the AccessTracking project you need to select a configuration (editing build.xml) and regenerate hibernate code (using the ant target generateHibernate) for AccessTracking project.
Also you need to modify the target
deployWar of your
build.xml in this way:
<target name="deployWar">
<ant antfile="../AccessTracking/build.xml" target="createTracker"/>
...
</target>
Now you only have to deploy the war for your project.
All access are recorded in a table with the name TRACKING.ACCESS. If you want you can deploy the module web or the portlet of
AccessTracking project in order to have a web application to browse the accesses.
For more details you can have a look at the
OpenXavaTest project.