Question

J'ai une application Java EE assez ordinaire en cours d'exécution sur JBOSS. Il utilise l'authentification JBoss DatabaseLoginModule JAAS. Il a également utilisateurs couche application / rôles dans Hibernate qui sont exactement les mêmes.

J'ai une idée (qui je pense est très utile pour moi, de toute façon) d'avoir un peu de capacité que je peux mettre dans l'objet de licence du logiciel (ne pas utiliser mise en veille prolongée) qui fait tous les utilisateurs l'utilisateur en lecture seule. Cela me permet de faire une lecture seule version du produit par une licence, il.

Ce que je voudrais faire est remapper les associations d'utilisateurs basé sur un indicateur booléen accessible à l'intérieur du programme.

Donc, normalement, nous obtenons (plusieurs beaucoup d'autres rejoignent)

Utilisateur - * UserRole * -Rôle - * RoleActions

user.roleid => role.id

Lorsque le booléen est défini (un bit de capacité définie dans la licence du logiciel)

Je voudrais JAAS d'agir comme tous les utilisateurs ont été RoleId = 1 lorsque la licence dit.

Toutes les idées?

Était-ce utile?

La solution

Par DatabaseServerLoginModule je peux le sous-classement effectuer des contrôles supplémentaires. (Sur la licence du logiciel)

trivialement je peux alors

  1. Si la licence est expiré, donner à un utilisateur en lecture seule (les informations d'identification sont fixes)

  2. Si la licence a bit capacité en lecture seule ensemble, donner lecture seule utilisateur (les informations d'identification sont fixes)

Depuis la connexion a été intercepté, la recherche Hibernate utilisateur sera pour l'utilisateur droit.

Autres conseils

Peut-être que je manque le bateau, mais pourquoi ne pas le faire programatically?

Dans objet User, fournir un getter transitoire qui comme filtre getAuthenticatedRoles() plus ce que chargé Hibernate. Additonally, faire le getter de collection mappée originale protected, et utiliser uniquement d'un autre code <=> Java.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top