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

Langage Java Discussion :

Gestion des droits dans une application Java


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Points : 35
    Points
    35
    Par défaut Gestion des droits dans une application Java
    Bonjour,

    J'ai cherché un peu des informations sur la gestion des droits des utilisateurs, mais j'ai tout de même un peu de mal à comprendre comment on peut gérer ça.
    Disons que j'ai une classe paie, dedans je peux afficher la paie, et l'autre recalculer la paie.
    Les utilisateurs normaux peuvent seulement consulter et les gestionnaires de paies peuvent recalculer la paie.
    Donc ma question c'est comment définir que tel profil d'utilisateur peut accéder à cette fonction et tel autre à tel autre fonction, j'aimerais faire ça dans un bon esprit objet, ne pas le faire de façon tordue. Et surtout vu que c'est de l'objet que ça soit évolutif facilement, par exemple création d'un nouveau profil.
    Gérer des droits de façon bourrin je peux le faire sans problème, mais ce que j'aimerais réellement réaliser c'est quelque chose d'intelligent.
    Donc si vous avez des idées...

    En tout cas merci de m'avoir lu,

    Donaldo

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    En utilisant le SecurityManager et en jouant avec les polices ? Je ne sais pas trop comment cela fonctionne, mais il faut un peu chercher.

    En fait, faut penser à un grand tableau à deux dimension. Là, c'est le cadre général. Une application rapide peut se limiter à cela : un tableau à deux dimensions définissant toutes les actions possibles et tous les utilisateurs. Et l'accès que chaque utilisateur a à chaque action.

    Après, c'est terriblement fastidieux à gérer, tout ça. Alors, on crée des groupes. Tant des groupes d'utilisateurs que des groupes d'actions. Et on leur attribue un accès par défaut (validé ou refusé). Typiquement, un groupe d'utilisateur est un groupe (bah oui, quoi), tandis qu'un groupe d'actions est lié à un module d'une application, voire à une application pleine dans les environnement multi-applicatifs. Ceci permet de gérer des droits par défaut.

    Pour complexifier le tout, on peut même ajouter des niveaux. C'est à dire que un utilisateur peut accéder à une ressource parce qu'il est niveau membre d'un groupe, mais ne peut pas parce qu'il est membre d'un autre groupe (typiquement, ce sont les informaticiens, ça : on a accès à tout, mais on peut officiellement pas y avoir accès). Alors, il faut décider entre les deux groupes est le plus important et lequel permet d'octroyer ou non l'accès.

    Au final, l'interface est extrêmement sommaire et gère tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public interface SecureApplication {
      // fonction au sens fonctionnalité du terme, pas dans le sens "code".
      public Permission getPermission(String moduleName, String function);
    }
     
    public interface Permission {
      // conteneur de droits, des règles pour cette fonctionnalité de cette application,
      // histoire de pas appeler 20x la méthode de SecureApplication.
    }
     
    public interface User {
      public boolean hasPermission(Permission permission);
      public List<UserGroup> getGroups();
    }
    Bien entendu, il faut créer le logiciel-qui-va-bien et qui permet de gérer les droits.

    Mais bon, ce n'est qu'un début de réflexion.

  3. #3
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Java intègre une gestion des ACL dans le package java.security.acl

    Tu devrais chercher de ce côté, ça permet une gestion pointue des droits.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Ah ben voilà, ça m'apprendra à pas connaître la doc à fond ('fin, quoique, c'est très fort résumé dans ma première phrase )

  5. #5
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par dingoth Voir le message
    Ah ben voilà, ça m'apprendra à pas connaître la doc à fond ('fin, quoique, c'est très fort résumé dans ma première phrase )
    Je ne connais ce truc que depuis 2 semaines
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Points : 35
    Points
    35
    Par défaut
    Ouah merci, je vais regarder un peu toutes les pistes.
    Acl du premier coup d'oeuil ça a l'air d'être pour les fichiers non?
    Enfin toute façon je vais bien regarder ça.

    Merci

  7. #7
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par Donaldo Voir le message
    Acl du premier coup d'oeuil ça a l'air d'être pour les fichiers non?
    Non, pas seulement.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Points : 35
    Points
    35
    Par défaut
    J'ai regardé un peu comment utiliser acl, cependant j'ai énormément de mal à comprendre comment l'adapter a ma problématique.
    Si quelqu'un pouvait m'aider en me donnant les briques de base pour que je rode ensuite derrière?

    Merci d'avance

    Donaldo

  9. #9
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Désolé, pas encore utilisé, c'est mon chef qui a utilisé le principe mais sans utiliser les interfaces du JDK car notre besoin n'est pas tant pointu.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Points : 35
    Points
    35
    Par défaut
    En fait j'ai du mal à me dire que les programmes soient pas autant sécurisé. Ce que je veux dire c'est par exemple un hacker il peut utiliser des droits qu'il ne lui sont pas attribué.
    Vu qu'au fond on montre a l'utilisateur juste ce qu'il a droit, sans pour autant qu'en interne il soit interdit d'utiliser d'autres fonctions.
    En fait je vois pas du tout comment faire pour gérer des droits utilisateurs en générale peut être que je veux aller trop loin pour rien.

    Donaldo

  11. #11
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par Donaldo Voir le message
    peut être que je veux aller trop loin pour rien.
    A te lire je dirais que ça pourrait être le cas.
    Sécuriser l'exécution de méthodes, pour s'embêter à faire ça il faut avoir de bonnes raisons.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

Discussions similaires

  1. Système de gestion des utilisateurs dans une application en Java
    Par leking2011 dans le forum Général Java
    Réponses: 9
    Dernier message: 01/08/2018, 01h52
  2. Gestion des threads dans une application swing
    Par MaxLaMenaX dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 10/11/2010, 22h46
  3. Réponses: 0
    Dernier message: 24/06/2010, 12h11
  4. gestion des reporting dans une application wpf
    Par sanaaafkir dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 16/05/2008, 14h02
  5. XML/XSL et gestion des fichiers dans une application Web
    Par fatenatwork dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 01/02/2008, 14h09

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