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

Développement Web en Java Discussion :

[POJO] Gestion des droits


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [POJO] Gestion des droits
    Bonjour,

    Nous devons développer un Intranet sans aucuns frameworks. Pour l'instant, la gestion des droits se limite à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ( session.getAttribute("Utilisateur")==null ) 
     // Rien à faire ici
    else
     // Ok, bonne continuation
    Nous avons aussi des groupes auxquels appartiennent des utilisateurs, ce qui nous permet de charger un menu adapté à l'utilisateur.

    Evidemment c'est assez limité, nous voudrions plus de possibilité (droits en lecture et/ou écriture sur la page)

    Existe t'il des classes de l'API standard nous permettant de faire une gestion des droits digne de ce nom ?

    Merci

  2. #2
    Membre chevronné
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Par défaut
    ca dépend des contraintes de sécurité imposées...car il y a plusieurs niveau de restriction d'accès

    JEE propose les security constraint + realm, mais ca reste assez limité. Tu ne protège que des url et de manière basique. C'est surtout utilisé pour restreindre l'accès à l'application (via une page de login) et non aux fonctionnalités. Pour gérer la restrictions aux fonctionnalités (cad lorsque l'utilisateur clique sur un item de menu, un lien ou un bouton, ou tape l'url dans le navigateur) , le mieux est de créer un filtre de servlet qui contrôle l'accès depuis un référentiel où sont stockés les url avec les roles autorisés par exemple (le référentiel peut être une base de donnée, un fichier plat ou xml).
    Certains serveurs d'appli. permettent de sécuriser l'accès aux méthodes des ejb également.

    Maintenant les restrictions d'accès au niveau du formulaire n'ont pas normalisées dans JEE me semble t-il. Car c'est assez dépendant des choix ergos (champ invisible ou non editable?). Tu trouveras qq ch d'évolué dans des frameworks comme struts + struts-layout ou struts + formview, qui permettent de définir une page + règles d'affichage selon le role de l'utilisateur et selon différentes granularité (un champ input devient une balise span si le role=utilisateur).

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Grégory Picavet
    ca dépend des contraintes de sécurité imposées...car il y a plusieurs niveau de restriction d'accès
    Ben pour nous c'est avoir (ou pas) un bouton "editer" devant une communication, un document, etc.. et les droits (ou pas) d'être sur une page.

    Citation Envoyé par Grégory Picavet
    Pour gérer la restrictions aux fonctionnalités (cad lorsque l'utilisateur clique sur un item de menu, un lien ou un bouton, ou tape l'url dans le navigateur) , le mieux est de créer un filtre de servlet qui contrôle l'accès depuis un référentiel où sont stockés les url avec les roles autorisés par exemple (le référentiel peut être une base de donnée, un fichier plat ou xml).
    Pour beaucoup de modules nous utilisons un "contrôleuse" qui use et abuse de RequestDispatcher.forward() pour afficher des JSP ou autres Servlets. Le contrôle de savoir si l'utilisateur à la droit d'être la ou pas peux se faire dans cette "contrôleuse" mais les jsp restent toujours accessibles (bien que d'aucunes utilités). Et surtout, cela ne nous permet pas de savoir si la bouton "editer" peut-être affiché ou pas.

    Citation Envoyé par Grégory Picavet
    Certains serveurs d'appli. permettent de sécuriser l'accès aux méthodes des ejb également.

    Maintenant les restrictions d'accès au niveau du formulaire n'ont pas normalisées dans JEE me semble t-il. Car c'est assez dépendant des choix ergos (champ invisible ou non editable?). Tu trouveras qq ch d'évolué dans des frameworks comme struts + struts-layout ou struts + formview, qui permettent de définir une page + règles d'affichage selon le role de l'utilisateur et selon différentes granularité (un champ input devient une balise span si le role=utilisateur).
    Oui je me doute que des Frameworks ou Serveurs permettent de faire dans le finesse mais nous ne pouvons pas utiliser ces outils !!!

    Je crois que pour le moment nous resterons avec des tests de droits limités.

    Merci.

  4. #4
    Membre Expert
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Par défaut
    Bonsoir,
    je viens de voir votre message et je ne sais pas si cela vous servira.
    Je suis le createur du projet Formview qui ne depend pas d'un framework (Struts, JSF...). Il peut etre utilise cependant avec struts.

    En d'autres termes Formview fonctionne avec n'importe qu'elle framework qui genere du HTML. Le principe est d'englober la partie de la page HTML qui doit etre gere en fonctions des roles utilisateurs, etats...par la taglib <formview:page>. La classe utilitaire WEBFormViewUtil permet ensuite de gerer les etats des champs (lecture, invisible...).

    Si vous avez des questions n'hesitez pas a me les poser.

    Angelo

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Mon post est resté longtemps sans réponses car le projet est tombé à l'eau. Par contre je suis sur un nouveau projet ou je compte utiliser soit Spring soit Wicket pour mes vues (et Spring pour tout le reste).
    Votre solution m'intéresse beaucoup mais peut-elle également fonctionner avec l'une des deux solutions précitées ?

    Merci

  6. #6
    Membre Expert
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Par défaut
    Bonjour Blaise1,

    FormView peut etre utilise avec Struts avec un Plugin (ce qui ne vous interesse pas) ou une Servlet HTTP standard (ce qui vous interesse).

    Je ne connais pas Spring MVC, mais si il y a des fichier de validation XML (comme Struts), ca pourrait etre interessant de fusionner ces infos avec la config Formview, pour centraliser les infos sur les champs (date, maxlength...) au meme endroit comme ce qui a ete fait avec Struts.

    En esperant que FormView vous conviendra, bonen chance.

    Angelo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des droits Samba
    Par mask66 dans le forum Réseau
    Réponses: 9
    Dernier message: 25/05/2005, 11h56
  2. quel SGBD possible pour telle gestion des droits
    Par meufeu dans le forum Décisions SGBD
    Réponses: 11
    Dernier message: 14/04/2005, 09h17
  3. gestion des droits d'accès : pg_hda.conf et autres
    Par Pigoulou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 12/02/2005, 07h57
  4. Gestion des droits
    Par totop dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 22/01/2005, 09h49
  5. Gestion des droits d'accès
    Par soulryo dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 12/01/2005, 10h50

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