IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Java Discussion :

Jguard et administration des rôles


Sujet :

Sécurité Java

  1. #1
    Membre confirmé Avatar de bbo1991
    Profil pro
    oidfsdfsd
    Inscrit en
    Novembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : oidfsdfsd

    Informations forums :
    Inscription : Novembre 2006
    Messages : 100
    Par défaut Jguard et administration des rôles
    Hello à tous,
    Pour mon application jee je dois mettre en place un système d'authentification des utilisateurs du système.
    Le framework le plus connu actuellement en la matière étant Jguard j'aimerai m'assurer qu'il corresponde bien à mes besoins avant de m'élancer corps et âme dans son apprentissage.

    Alors voilà: comme pour toute gestion des utilisateurs classique on doit pouvoir ajouter des utilisateurs auxquels seront affectés des rôles précis.
    Ces rôles définissent ce que tel ou tel utilisateur peut faire dans toute l'ensemble de l'application.
    Exemple:
    -le rôle "comptable" peut enregistrer une dépense et les lister
    -le rôle "vendeur" peut enregistrer une recette et les lister
    -le rôle "administrateur" peut ajouter ou supprimer de utilisateurs

    Jusque là c'est du classique,là ou ça se corse c'est qu'il existe un rôle "super administrateur" qui lui doit pouvoir:
    - redéfinir les droits de chaque rôle sur chaque fonctionnalité (ex: supprimer du rôle "comptable" le droit de lister les dépenses)
    - ajouter de nouveaux rôles en choississant les fonctionnalités auxquelles ce rôle peut accéder (ex: ajouter rôle "auditeur" qui aura comme seuls droits la possibilité de lister dépenses et recettes)

    L'ajout de ces rôles et la définition de leurs droits devant se faire via une interface web, pas question de recompiler des classes java ou de configurer de quelconques fichiers xml à la main pour y parvenir.
    On aurait par exemple simplement la liste des fonctionnalités muni de cases à cocher pour choisir les fonctionnalités autorisés pour tel ou tel droit.
    L'utilisateur muni du rôle "super administrateur" pouvant être une personne n'ayant aucune connaissance en java!!!
    Bref les rôles affectés aux utilisateurs doivent être dynamiques.

    Ayant lu , soyons francs, la maigre documentation existant sur Jguard je n'ai pas pu m'assurer de la possibilité d'efectuer cette partie administration des rôles.

    J'ai même essayé l'exemple "jguard-struts-example" fourni avec Jguard 1.0.0 mais je pense que j'ai un bug là-dessus:
    d'abord il m'a fallu l'installer sur un Tomcat-5.5.9 avant que l'exemple ne marche, ensuite je n'ai pas pu l'explorer à fond, l'erreur suivant se présentant quand j'esaye de me loguer avec le compte admin par défaut:" JCaptcha service is null: it has not been properly initialized " je ne sais pas si je dois encore configurer quoi que ce soit ou définir une BDD avant que ça marche, la seule indication donnée était d'uploader le fichier WAR....

    Autre détail de taille avant de me répondre, il faut savoir que l'application finale sera déployée sur un serveur jboss avec un jdk 1.3.1 et un tomcat 4.1.12.
    Vu que l'exemple "jguard-struts-example" n'a pas pu marcher avec cette configuration je pense que la version 1.0.0 de jguard nécesite des versions plus récentes de jdk et tomcat, donc je pense qu'il va me falloir une version plus ancienne de jguard mais cette version là permet-elle l'administration dynamique des rôles décrit ci-dessus?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 136
    Par défaut
    bonjour bbo1991,
    faisant partie du projet jguard, je pense pouvoir répondre à tes questions:

    comme pour toute gestion des utilisateurs classique on doit pouvoir ajouter des utilisateurs auxquels seront affectés des rôles précis
    => pas de soucis, jGuard le supporte.

    'il existe un rôle "super administrateur" qui lui doit pouvoir:
    - redéfinir les droits de chaque rôle sur chaque fonctionnalité (ex: supprimer du rôle "comptable" le droit de lister les dépenses)
    - ajouter de nouveaux rôles en choississant les fonctionnalités auxquelles ce rôle peut accéder (ex: ajouter rôle "auditeur" qui aura comme seuls droits la possibilité de lister dépenses et recettes)
    => pas de soucis, jGuard le supporte.

    L'ajout de ces rôles et la définition de leurs droits devant se faire via une interface web, pas question de recompiler des classes java ou de configurer de quelconques fichiers xml à la main pour y parvenir.
    => jGuard le supporte et le propose dans son example de webapp avec Struts.

    On aurait par exemple simplement la liste des fonctionnalités muni de cases à cocher pour choisir les fonctionnalités autorisés pour tel ou tel droit.
    => c'est possible. la webapp d'exemple de jGuard propose de définir des URLPermission (correspondant à tes actions struts par exemple) via un formulaire web, et de les affecter aux rôles; de même, la webapp d'exemple permet d'affecter des rôles aux utilisateurs.

    la webapp n'a pas une interface d'administration très poussée, car elle n'est là qu'à titre d'exemple.

    Ayant lu , soyons francs, la maigre documentation existant sur Jguard je n'ai pas pu m'assurer de la possibilité d'efectuer cette partie administration des rôles.
    => il est vrai que la documentation peut être améliorée.
    pourrais-tu préciser les points précis qui font défaut?
    certains utilisateurs de jGuard nous ont fait des remarques de ce type, et nous avons amélioré la documentation sur ces points très rapidement.
    un retour de ta part nous permettra d'avoir du recul (on baigne dan jGuard, donc tout nous semble évident ).

    concernant l'exemple "jguard-struts-example", effectivement il y a un bug:
    elle ne fonctionne qu'avec jee 1.4(d'où le besoin d'utiliser tomcat 5.5); le bu est listé ici:
    http://sourceforge.net/tracker/index...76&atid=647954

    cette petite coquille sera rectifiée très rapidement dans la 1.0.1 (qui sortira d'ici une semaine maxi je pense).

    concernant le bug relatif à JCaptcha:
    as-tu laissé dans le fichier JGuardAuthentication.xml (situé dans WEB-inf/conf/jguard) le jcaptchaLoginmodule référencé?).
    celui-ci est appelé via l'image présent dans la page de login.
    pour tester rapidement, tu peux supprimer dans ta page de login l'image , pour voir la suite de la webapp.

    concernant ton serveur d'application et ta version de java, tu fais référence à tomcat 4.1.12 dans jboss et java 1.3.1.

    JGuard reposant sur JAAS qui n'a été intégré en standard qu'à partir de la version 1.4 de java, celui-ci ne supporte pas de version précédente du jdk...
    en bref, le hic est ta version de java qui est trop ancienne pour jGuard, qui répond à tes autres besoins listés ci-dessus.
    concernant la doc, quels points précis nécéssitedes améliorations?

    amicalement,

    Charles.
    www.jguard.net

  3. #3
    Membre confirmé Avatar de bbo1991
    Profil pro
    oidfsdfsd
    Inscrit en
    Novembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : oidfsdfsd

    Informations forums :
    Inscription : Novembre 2006
    Messages : 100
    Par défaut
    Ok merci pour ta réponse je crois que ça va me pousser à analyser JGuard plus en profondeur .

    Alors, pour les améliorations que tu as demandé, déjà ce serait bien que pour chaque version vous puissiez préciser les configurations minimums: quelles versions de Jdk et Tomcat on a besoin, etc...

    Ensuite ben sur le wiki je vois en grande partie des API déjà ça c'est bien mais un petit tutoriel aurait été le bienvenu, je ne sais pas si c'est trop demander.
    On pourrait par exemple expliquer l'exemple avec struts histoire que l'on ait un petit point de départ.
    Parce que là pour débuter je vois pas vraiment par où commencer, un conseil?

    Autre chose qui pourrait aider, une vue d'ensemble du fonctionnement de Jguard, genre un schéma sur l'interaction des différents api avec le reste l'application.

    Sinon pour le Jdk je pense qu'on peut monter en 1.4.x avec donc comme je te l'ait dit un Tomcat 4.1.12 , est-ce que ça suffit pour utiliser la dernière version de Jguard?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 136
    Par défaut
    merci pour ton retour!

    Alors, pour les améliorations que tu as demandé, déjà ce serait bien que pour chaque version vous puissiez préciser les configurations minimums: quelles versions de Jdk et Tomcat on a besoin, etc...
    => c'est noté!
    dans le guide de démarrage rapide (http://jguard.xwiki.com/xwiki/bin/vi...ickStartGuide), j'ai inclus une section 'requirement' qui explicite les pré-requis(java 4 et j2ee 1.3).
    je vais répéter l'info dans d'autres pages vu que c'est un point important.

    Sinon pour le Jdk je pense qu'on peut monter en 1.4.x avec donc comme je te l'ait dit un Tomcat 4.1.12 , est-ce que ça suffit pour utiliser la dernière version de Jguard?
    si tu passes dans ton projet à java 4(c'est-à-dire 1.4), et utilises tomcat 4.1.12, ou un jboss basé dessus, tu pourras utiliser jGuard.

    Ensuite ben sur le wiki je vois en grande partie des API déjà ça c'est bien mais un petit tutoriel aurait été le bienvenu, je ne sais pas si c'est trop demander.
    => tu as raison!
    je vais mettre cela dans la TODO list, et vais essayer d'en fournir un dans des délais raisonnables(besoin crée ici : http://sourceforge.net/tracker/index...76&atid=647958).

    une vue d'ensemble du fonctionnement de Jguard, genre un schéma sur l'interaction des différents api avec le reste l'application.
    ton idée de schéma global du fonctionnement de jGuard,avec les interactions entre les différentes parties est aussi nécéssaire (peut-être le plus prioritaire):
    il est maintenant dans la TODO list ici :
    http://sourceforge.net/tracker/index...76&atid=647958

    merci beaucoup pour ton retour!
    je vais travailler sur ces pistes pour améliorer la documentation.
    si tu as d'autres questions, n'hésite pas à les poster ici ou sur le forum de jGuard sur sourceforge.

    cordialement,

    Charles.

  5. #5
    Membre confirmé Avatar de bbo1991
    Profil pro
    oidfsdfsd
    Inscrit en
    Novembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : oidfsdfsd

    Informations forums :
    Inscription : Novembre 2006
    Messages : 100
    Par défaut
    J'ai pris un peu de recul pour lire les docs existants et me familiariser avec Jguard.

    Alors finalement voici ma config: JDK1.4.0, jboss-3.0.3 avec tomcat-4.1.12.
    Avec ça quelle version de JGuard me convient le mieux ???

    j'utilise en plus Struts donc ça devrait me faciliter les choses vu que je démarre en décortiquant le code de l'exemple.
    Alors quelques questions si tu peux m'éclairer:
    - si je comprends bien dans l'exemple donnée l'authentification se réalise en vérifiant les utilisateurs et leurs mots de passe dans le fichier "jGuardUsersPrincipals.xml".
    "jGuardAuthentication.DatabaseOnAuthenticationAndAuthorization.xml" me semble être la conf dans le cas où l'on utilise un SGBD est-ce vrai?
    J'aimerai que tu m'expliques le procédé pour changer le stockage des login/passwd vers un SGBD Oracle, y a-t-il un fichier properties qui définit les tables à créer???

    -ensuite pour les rôles, dans "jGuardUsersPrincipals.xml" je trouve des infos tels que: nom, passwd, religion, etc...
    Mais où exactement définit on les rôles pour chaque utilisateur AINSI que les défintions de ces rôles.

    Merci d'avance

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 136
    Par défaut
    Alors finalement voici ma config: JDK1.4.0, jboss-3.0.3 avec tomcat-4.1.12.
    Avec ça quelle version de JGuard me convient le mieux ???
    => jguard 1.0.0

    - si je comprends bien dans l'exemple donnée l'authentification se réalise en vérifiant les utilisateurs et leurs mots de passe dans le fichier "jGuardUsersPrincipals.xml".
    "jGuardAuthentication.DatabaseOnAuthenticationAndAuthorization.xml" me semble être la conf dans le cas où l'on utilise un SGBD est-ce vrai?
    => exact!
    par défaut, jGuardAuthentication.xml est configuré pour utiliser jGuardUsersPrincipals.xml comme source de données.
    le fichier "jGuardAuthentication.DatabaseOnAuthenticationAndAuthorization.xml" est ce même fichier configuré pour utiliser une base de données (dans ce fichier, à toi de pointer sur le bon fichier properties correspondant à la base de données que tu utilises).

    ensuite pour les rôles, dans "jGuardUsersPrincipals.xml" je trouve des infos tels que: nom, passwd, religion, etc...
    Mais où exactement définit on les rôles pour chaque utilisateur AINSI que les défintions de ces rôles.
    si tu utilises , c'est donc que tu choisis, au moins pour dbuter le stickage xml.
    les données que tu décris : nom , prénom, religion etc..., ne sont pas des rôles mais des credentials (attributs propres à l'utilisateur).
    les rôles sont des responsabilités dans ton application, afectés à des utilisateurs (tels comptable,commercial, admin, etc...).

    ces rôles sont définit dans jGuardPrincipalsPermissions(on les appelle des principals), et leur affectation est définie dans jGuardUsersPrincipal.xml.
    en clair, du côté jGuardPrincipalPermission.xml on définit les permissions et leurs roles/principal associés (tout ceci est spécifique à ton applciation), et du coté jGuardUserPrincipal.xml , on affecte a chaque utilisateur un rôle pour une application donnée.

    est-ce plus clair?


    cordialement,

    Charles.

  7. #7
    Membre confirmé Avatar de bbo1991
    Profil pro
    oidfsdfsd
    Inscrit en
    Novembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : oidfsdfsd

    Informations forums :
    Inscription : Novembre 2006
    Messages : 100
    Par défaut
    Ok merci beaucoup pour ta réponse c'est nettement plus clair maintenant.

    Je continue mon apprentissage du framework, j'enverrai d'autres post au cas où je serai bloqué.
    Encore merci

  8. #8
    Invité de passage
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1
    Par défaut Au sujet du bug Catcha de l'exemple
    Bonne nouvelle !

    Le problème vient du fait que la classe CatchaAction importe du Log4J alors que la librairie fournit dans l'application exemple ne contient pas le jar correspondant ; impossibilité donc d'instancier la classe et donc erreur avec pour un message dans la console du genre "GRAVE : la servlet a rencontré une exception".

    Donc il faut le rajouter dans le livrable (j'ai utilisé log4j-1.2.8.jar).

    Petite remarque en passant sur le moyen d'améliorer la doc : la grande difficulté que j'ai à étudier JGuard vient du fait que de nombreux termes (notament dans les fichiers de conf XML) ou notions n'ont pas d'explication. Un petit glossaire serait vraiment très utile.
    Jguard me semble très intéressant à utiliser, mais le temps manque souvent pour évaluer un fwk, et il est souvent écarté à cause du délai de prise en main. En un mot, en terme paysan, comment ça marche et à quoi ça correspond.

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 136
    Par défaut
    bonjour,
    merci pour vos remarques.
    nous allons en tenir compte pour les prochaines versions.
    auriez-vous quelques exemples de termes non explicites?

    cordialement,
    Charles.

Discussions similaires

  1. Gestion des rôles sous forms
    Par gege87270 dans le forum Forms
    Réponses: 0
    Dernier message: 26/09/2007, 16h35
  2. attribuer des droits conditionnels avec des rôles
    Par DrTank dans le forum Administration
    Réponses: 4
    Dernier message: 15/06/2007, 22h58
  3. Administration des sources de données
    Par cdumas dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 01/12/2006, 12h07
  4. [MySQL] Page d'administration des enregistrements
    Par clementphp dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 13/05/2006, 20h06
  5. Réponses: 9
    Dernier message: 07/07/2005, 08h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo