Contrôle d'accès


La distrubution actuelle d'OpenXava inclut le projet AccesTracking. Ce projet comprend un entity listener qui permet de contrôler tous les accès aux données de vos applications. Concrètement, ce projet vous permet de respecter les règles de la légistation espagnole sur la protection des données (Ley de Protección de Datos) y compris les donnés hautement sensibles. Toutefois, il est sufisamment générique pour se rendre utile dans une grande variétés de scénarios.

Utiliser le listener

Lorsque vous utilisez ce listener dans votre entité, le code de la classe AccessTrackingListener est exécuté chaque fois qu'un objet est créé, chargé, modifié ou supprimé. AccessTrackingListener écrit une trace dans une table de la base de donnée avec les informations liées à l'accès. Pour utiliser ce listener dans votre projet, il suffit de le déclarer dans le code de votre entité ainsi :
@Entity
@EntityListeners(AccessTrackingListener.class)
public class Warehouse {
Ainsi, simplement avec une seule ligne de code, tous les accès au objets Warehouse seront enregistrés dans la base de donnée.

Configuration de AccessTracking

Si vous voulez utiliser AccessTracking dans votre projet, vous devez procéder au préalable à ces quelques étapes:
  • Ajouter AccessTracking comme projet référencé
  • Créer la table dans votre base de données pour enregistrer les traces d'accès. Vous trouverez le script CREATE TABLE dans le fichier AccessTracking/data/access-tracking-db.script
  • Dans le projet AccessTracking, choisir une configuration (en éditant build.xml) et regénérer le code hibernate (en utilisant la cible generateHibernate)
  • Modifier la cible deployWar de votre build.xml ainsi :
    • <target name="deployWar">
          <ant antfile="../AccessTracking/build.xml" target="createTracker"/>
          ...
      </target>
A présent, il suffit de déployer le war de votre projet. Tous les accès seront enregistrés dans la table appelée TRACKING.ACCESS. Si vous le souhaitez, vous pouvez déployer le module web ou la portlet du projet AccesTracking pour bénéficier d'une application qui vous permet de consulter les accès.

Pour plus de détails, référez-vous au projet OpenXavaTest.