Le 26/09/2012 17:20, Eric Chatellier a écrit :
Bonjour,
Je réfléchis à une librairie d'authentification et autorisation basée sur les jsp et sur shiro. Le but est de proposer: * une gestion simple d'accès à des fonctionnalités suivant un login et un role * de proposer une interface de création des utilisateurs, des roles et des permissions (matrice utilisateurs/roles) * une méthode d'authentification
Je ne connais pour l'instant pas du tout shiro, et je m’interroge sur la façon la plus propre de créer des interfaces web dans une lib pour l'utiliser dans une application (jsp et servlet) : si possible sans passer par des taglib.
La persistance serait plutôt orientée ToPIA. Une première version a été développé et présentée hier.
En résumé (de ce qui a été fait) : * librairie struts qui contient les actions (matrix de droits, creation des utilisateurs et des roles) * contient aussi les jsp de rendu, mais celle ci doivent être extraite via un maven-dependencies-plugin:unpack lors du build (donc mvn jetty:run ne fonctionne pas, il faut utiliser run-exploded) * surcharge du filtres d'init de shiro pour ajouter un royaume basé sur la persistence topia de la lib Axes d'amélioration : * La lib doit rester simple d'utilisation pour une sécurité simple * Ajouter un seul filtre pour utiliser la lib de sécurité * Supprimer le fichier shiro.ini et configurer uniquement la lib qui s'occupera de configurer les royaumes shiro * Les utilisateurs et role doivent être dynamiques, les permissions sont fixées par configuration. * Ajouter des entrées de configuration pour associer un pattern d'url à une permission (pour pouvoir cacher visuellement un lien et quand même empêcher l'accès à la page si on devine le lien) * Supprimer la dépendance à struts (filter/jsp) * (plus tard) supprimer les jsp (pour que la lib n'est pas besoin d'une configuration de build maven et soi plus simple) : template freemarker ? Exemple de configuration: org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read org.nuiton.web.securite.permission.Rechercher=search:read -- Éric Chatellier <chatellier@codelutin.com> Tel: 02.40.50.29.28 http://www.codelutin.com