Question

J'ai un mécanisme de sécurité assez sophistiqué que j'implémentés en utilisant Apache Shiro (anciennement JSecurity). Afin de connaître les règles de visibilité exacte d'un objet, je dois exécuter un code (les rôles de l'utilisateur, à savoir recherche autorisations, groupes, etc.). Je voudrais exécuter des requêtes qui me disent des objets que l'utilisateur actuel est autorisé à voir.

J'ai trouvé que les filtres de mise en veille prolongée vous donnent la capacité d'appliquer un filtre à vos objets / requêtes, ce qui semble être ce que je pourrais utiliser ici.

Cependant, les exemples que je trouvais semblent être centrées sur la base de données (à savoir que j'ai un champ / colonne isVisible, filtre chaque fois qu'il est défini sur true). Est-il possible que je peux exécuter un code comme un filtre de mise en veille prolongée, ou est-ce juste une fine couche qui ajoute une petite clause WHERE à toutes vos questions.

Je suis en fait d'utiliser ce à l'intérieur Grails / infrastructure Gorm, alors peut-être il y a d'autres solutions qui sont valides. Un plug-in existe qui intègre les filtres mise en veille prolongée, mais à moins que je ne peux l'utiliser avec un code pour fonctionner comme partie du processus de filtrage de mise en veille prolongée, il ne sera pas vraiment me aider.

Était-ce utile?

La solution

Malheureusement, les filtres Hibernate ne résoudra pas votre problème. Ils peuvent être très utiles, mais il est exactement une couche mince qui ajoute une petite clause WHERE pour tous les chercher.

Puisque vous utilisez Grails, vous trouverez peut-être que AOP vous donnera ce que vous cherchez. Jetez un oeil à ceci: http://www.infoq.com/articles/aop- avec-super

Bonne chance.

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