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 :

Comment gérer les droits ?


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Par défaut Comment gérer les droits ?
    bonjour,
    j'ai une application web dans laquelle un simple client (une fois connecté) peut lancer une commande d'un produit mais seulement l'administrateur peut la valider.
    J'ai réalisé ceci avec la façon suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if session.getAttribute("username")=="admin"
     valider
    mais je sais que ce n'est pas professionnel en plus j'ai une page qui possède un menu déroulant et ce menu là n'est pas le meme pour les différents utilisateurs(pour l'admin on a d'autres choix à ajouté).
    J'ai essayé de voir avec spring security mais ça m'a paru un peu difficile

    Y a t-il un autre moyen??

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    Bonjour,

    Pour ce qui est de la sécurité et de l'authentification regarde JAAS (J2EE authentication and authorization).
    Cependant pour mes besoins, cela n'était pas suffisant car tu ne peux géré les autorisations que qu'en fonction du profile de connexion.

    Sinon, il existe Shiro. Il permet une gestion plus fine des autorisations.
    Un très bon article qui explique comment l'utiliser avec J2EE6 : Apache Shiro, is it ready for Java EE 6?

    Bon courage !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 153
    Par défaut
    Ou bien, pour garder une bonne vue sur ton projet, tu peux toujours tout gérer toi même. Moi c'est ce que je fais en générale. J’attribue à chaque utilisateur des droits que je gère à travers une table dans la base de données. Bien sure, tu fais au préalable un inventaire de toutes les ressources sur lesquelles tu veux restreindre des actions (liens, boutons, menu...). ensuite tu peux lier la table de ces ressources à celle des utilisateurs en définissant l'autorisation qu'un utilisateur peut avoir sur une ressource. et tu a une gestion de droit assez flexible.

  4. #4
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    Citation Envoyé par mysianne Voir le message
    Ou bien, pour garder une bonne vue sur ton projet, tu peux toujours tout gérer toi même.
    Pourquoi réécrire quelque chose qui existe déjà et qui sera certainement de plus complet et stable que ce que l'on peut faire soit même ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 153
    Par défaut
    il existe certes plein de bloc de code permettant de s'affranchir de bien de tâches. Bien que fiable (stable), ils ne sont que relativement complet. Car à mon avis, si l'on ne se trouve pas confronté à un problème informatique en soit tels que les mécanismes techniques de persistance, de communication réseau etc. il est bien difficile d'envisager tous les cas fonctionnel.
    De plus, ce n'est pas parce qu'une solution existe qu'on n'a plus le droit de penser par nous même. si c'était le cas, on ne serai jamais allé aussi loin dans les sciences.

  6. #6
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    waaaoooh, ne t'emballe pas !
    Je n'ai pas dit que l'on ne pouvait pas se pencher sur une problématique et développer son propre framework. Mettre en place un place un framework sur de la sécurité ou de la persistance (puisque tu en a fais allusion) ce n'est pas quelque chose de tu peux développer en 3 jours, il faut avoir une vrai réflexion et avoir le temps pour le faire. Des framework tel que hibernet (pour rester sur ton exemple de la persistance) sont la depuis des années et on évolué avec le temps.
    Lorsque tu travailles au développement d'une application tu ne peux pas te permettre de perdre du temps a tous remettre en cause.
    Mais c'est un débat un peu philosophique, revenons donc au sujet principal.

    mysianne, je ne doute absolument pas de tes capacités de développeur, mais ici on parle d'une application J2EE qui est donc normé. Ici, la question qui est posé porte en plus sur la sécurité, stoner2008 ne fait qu'allusion aux autorisations, mais qui dit autorisations, dit fatalement authentification. A mon sens, il me semblerait un peu audacieux de proposer a quelqu'un qui en plus semble débuter sur le domaine, de mettre en place un système d'authentification / autorisations "from scratch". tu ne crois pas ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    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 : 45
    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
    En l'occurence, dans le cas, présent, si il ne s'agit que de cacher certains éléments de menu ou d'interdir certaines actions à certains utilisateurs, le plus simple reste une gestion en partie manuelle.

    Tu peux, par exemple, laisser le conteneur J2EE géré l'authentification et les rôles, mais gérer la sécurité par toi même, avec des trucs du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:outputPanel rendered="#{request.isUserInRole('administrator')}">

    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public String faireUnTrucAdmin(){
          if (FacesContext.getCurrentInstance().getExternalContext().isUserInRole("administrator")){
            //go
          } else
            return "FAIL";
    }

  8. #8
    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 : 45
    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
    Citation Envoyé par mysianne Voir le message
    Ou bien, pour garder une bonne vue sur ton projet, tu peux toujours tout gérer toi même.
    Il y a un grand principe en programmation: éviter de réinventer la roue. Qui se bat avec un fait en programmation: un code est plus facile à écrire qu'à lire. Ce qui fait qu'on pense souvent à tord qu'il est préférable d'écrire un truc dans un coin que de prendre quelque chose d'existant. Mais souvent l'existant à l'avantage d'avoir été éprouvé et debuggé pendant des années, et donc de gérer tout un tas de cas auxquels on ne pense pas au départ...

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Dans la mesure où ton application peut se contenter d'une gestion de droits standard (profil -> roles), je t'encourage à utiliser JAAS.
    Il a le gros avantage de passer ces informations aux différents conteneurs (web, ejb) et d'être largement éprouvé.
    Maintenant, il y a des cas où c'est un peu plus complexe et l'implémentation standard s'avère insuffisante, mais là encore, tu peux faire du customizing, par exemple sur l'objet Principal ou même la manière d'authentifier... bref, il y a de quoi faire
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 93
    Par défaut
    Spring sécurity est pas mal non plus avec la validation des roles sur les méthodes (via annotation) et la sécurisation des Urls

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/04/2011, 10h48
  2. Comment gérer les droits ?
    Par bernardgiraud dans le forum Dreamweaver
    Réponses: 3
    Dernier message: 15/04/2010, 17h35
  3. Comment gérer les valeur Nulles dans une requête ?
    Par sondo dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h02
  4. Comment donner les droits sysdba à un autre user ?
    Par willone dans le forum Débuter
    Réponses: 3
    Dernier message: 24/09/2004, 11h15
  5. Comment gérer les espaces blancs?
    Par Lambo dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 16/05/2003, 09h44

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