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

JSF Java Discussion :

JSF gestion des droits


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut JSF gestion des droits
    Bonjour,

    Je suis en train de coder un site ou les utilisateurs peuvent avoir des droits d'administration, de posteur de news, etc ... et je me demande quelle est la meilleure solution pour vérifier les droits d'accès aux différentes pages.

    En php, j'avais l'habitude de faire des trucs de style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(autorisé){
         afficher la page}
    else{
         message d'erreur
    }
    En JSF, il existe <c:if>, mais n'existe-t-il pas une solution plus "propre" ?

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    JSF est une solution gérant les formulaires sur les webapps. A ce titre, il bénéficie de toutes la gestion de sécurité déjà incorporée dans les conteneur. Pour JSF, ce sera des droit d'accès lié aux urls. Certaines urls seront accessbile, d'autres pas. Attention, cepedant, le "submit" ayant toujours lieu vers la page courante et pas vers la page de destination. Si tu met un formulaire admin sur la page principale, tout le mond y aura accès. Tu dois donc aussi, vraisemblablement, cacher certaines parties de tes formulaires en fonctions des droits des utilisateurs. Pour cela, je te recommande de jeter un oeil aux composants de myfaces-tomahawk, qui pour la plupart ont des paramètres permettant de limiter leur utiliation à certains "roles" que l'utilisateur doit posséder

    Au passage, les composant de la jstl (exemple if) se marient très mal avec jsf.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    Merci de ta réponse. Pour mon appli, je me suis plutôt dirigé vers richfaces que tomahawk, c'est un choix. En approfondissant mes recherches j'ai vu que seam a aussi une gestion des accès. J'ai testé rapidement, mais ca m'a tout fait planter. N'ayant pas le temps de me pencher plus sur cette partie, je vais me contenter du if de jstl (aïe mes doigts ), et puis je modifierai plus tard avec un codage plus propre.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Je me répète hein, mais.....
    Au passage, les composant de la jstl (exemple if) se marient très mal avec jsf.
    Ceci est du au fait que le if de la jstl est évalué à chaque requete, alors que l'arbre des composants JSF est construit une fois pour toutes lors du create view. Résultat, si les droits changent (ex l'utilisateur s'est loggué), le contenu jsf ne va pas changer pour autant.

    Au fait, y a pas de raison pour que tomahwak soit incompatible avec richfaces hein! Le t:panelGroup, qui supporte les roles, peut parfaitement être intégré dans un panel richfaces et vice versa.

    Dans le pire des cas, si tu veux pas de tomahawk, tu peux toujours mettre sur tes composants un rendered="#{rolesBeans.hasRole['admin']}" avec getHasRole() retournant un Map virtuelle dans laquelle tu check si le user courant a le role demandé.

  5. #5
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    Ok, et bien s'il me reste un peu de temps, je regarderai ca de plus prêt. Le truc c'est que c'est un projet pour les cours à rendre pour vendredi et donc je suis un peu limite en temps. Donc pour l'instant je fini les fonctions principales, et ensuite je modifierai tout ca

    Ceci est du au fait que le if de la jstl est évalué à chaque requete, alors que l'arbre des composants JSF est construit une fois pour toutes lors du create view. Résultat, si les droits changent (ex l'utilisateur s'est loggué), le contenu jsf ne va pas changer pour autant.
    Et en effet, j'ai remarqué ce petit détail qui est quand même assez gênant :/

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