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 :

Gerer des droits utilisateurs ?


Sujet :

Langage Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut Gerer des droits utilisateurs ?
    Bonjour,

    Je me pose quelques questions sur la réalisation d'une gestion des droits et j'aimerais bénéficier de vos conseils pour m'aider.

    Je voudrais avoir un liste d'utilisateur de mon programme qui aurait plus ou moins de droits sur celui ci.

    Exemple :
    - user1 a le droit d'accéder seulement en visualisation à la catégorie 1, il peut visualiser, modifier, créer un entité dans la catégorie 2 et il n'a pas accès à la catégorie 3.
    - user2 a le droit d'accéder et de modifier la catégorie 1 et il n'a pas accès à la catégorie 2 ni 3.
    ...

    Ces droit sont stockés dans la base.

    J'aimerais avoir un idée du "comment l'appliquer dans le programme". Au début, j'ai une fenetre d'identification, mais comment j'utilise les droits au mieux ? Je les laisse dans la base ? Je les stocke temporairement ? dans quoi ?

    J'avais penser à une classe qui DroitConnexion stockerai tout ca mais je ne sais pas si c'est le mieux pour ce cas la.

    Pouvez vou me conseiller ?

  2. #2
    Membre habitué Avatar de manube
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2004
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 180
    Points : 178
    Points
    178
    Par défaut
    Salut,
    Alors je n'ai pas de solution miracle mais je te conseillerais d'affecter des permissions à des groupes d'utilisateurs, pour la maintenance c'est plus simple.
    De mon coté j'ai créé des 'catégories' et des 'operations' (create, delete, consult ...) et j'ai associé ces combinaisons à mes groupes. Dans mon cas j'ai une appli web et à la connexion je load mon user avec toutes ses autorisations et je le sauve dans ma variable de session pour acceder aux autorisations.
    Voila, je suis moi aussi à l'écoute de toute autre proposition.
    a+
    Manu

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut
    oui les profils sont prevu et les operations aussi.

    Mais c'est surtout l'accès à ces informations où je me pose des questions.

    Toi c'est dans les variables de ton navigateur qu'elles sont stockées ? Par dans ton programme java c'est ca ? (tu utilise le jnlp ?)

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Citation Envoyé par RR instinct
    Toi c'est dans les variables de ton navigateur qu'elles sont stockées ? Par dans ton programme java c'est ca ? (tu utilise le jnlp ?)
    Le scope session est une notion du developpement J2EE, et correspond à une Map qui permet d'associer des objets à un client de manière transparente (gestion des cookies du navigateurs). Mais cela ne t'ai d'aucune utilité pour une application standard...


    Citation Envoyé par RR instinct
    Mais c'est surtout l'accès à ces informations où je me pose des questions.
    Je suppose que ton application est mono-utilisateur ?
    Dans ce cas je verrais bien un Singleton qui te permettrait d'accéder aux informations sur l'utilisateur courant...

    a++

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut
    Merci pour ta réponse.

    Mono-utilisateur dans le sens ou un seul utilisateur se connecte sur un poste en même temps ? oui c'est ca.

    Je m'interesse à la méthode de manube car je vais certainement porter l'applis via jnlp sur le web.

    Donc tu me proposes de créer une classe dans laquelle j'ai ma configuration pour l'utilisateur connecté (après à moi de voir comment j'organise dedans... surement avec une Hashtable non ?) et d'en avoir l'accès via une méthode static getInstance() ?

    C'est l'idée que j'en avais mais je voudrais une confirmation.

    Apres dans les classes ou j'ai besoin de ces droits j'appelle la méthode getInstance et je pourrais récupérer toutes les infos ?

    J'ai bon ou je me trompe ?

    Merci en tout cas

  6. #6
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Salut, je me suis posé la même question que toi il y a quelques semaines. Voici comment j'ai fait
    :
    L'utilisateur se logue et des l'instant ou il est correctement logué, je cree un objet static java qui servira tout le temps de ma session(j'utilise un client lourd , un jar). Je peux acceder aux droits de cette personne ensuite( j'utilise une base mysql). Vu que ta méthode est static tu peux l'appeler dans toutes tes classes mais n'oublie pas de mettre le mot clé public devant ta méthode, sinon tu ne pourras pas y acceder (à moins que tu fasses un getteur).

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut
    Merci pour ta réponse, juste des petites précisions si ca ne t'ennuie pas :

    - c'est un objet ou une méthode static que tu créé ? (et dans le deuxième cas, ta méthode se situe où ? dans l'interface principale ?)

    - tu accèdes à la base au début et tu met en cache tous les droits ou tu accède à la base chaque fois que tu veux savoir un droit ? Je pense que la première solution est la meilleure pour éviter les multiplications d'interrogation de la base non ?

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par RR instinct
    Mono-utilisateur dans le sens ou un seul utilisateur se connecte sur un poste en même temps ? oui c'est ca.
    Oui : un utilisateur par application.

    Citation Envoyé par RR instinct
    Je m'interesse à la méthode de manube car je vais certainement porter l'applis via jnlp sur le web.
    La méthode de manube ne concerne pas JNLP mais J2EE, c'est à dire le coté serveur et non pas le coté client. Tu ne pourras pas l'utiliser...

    Citation Envoyé par RR instinct
    Donc tu me proposes de créer une classe dans laquelle j'ai ma configuration pour l'utilisateur connecté (après à moi de voir comment j'organise dedans... surement avec une Hashtable non ?) et d'en avoir l'accès via une méthode static getInstance() ?
    Oui c'est ca. Tant que tu n'est pas loggé tu n'as aucune authorisation (à moins que tu ne veuilles authoriser quelques actions sans authorisation), et avant de lancer une action tu vérifies les droits, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    class User {
     
        private static final User SINGLETON = new User();
     
        public static User getInstance() {
            return SINGLETON;
        }
     
        // + tes méthodes pour le login et les droits
     
        // par exemple :
        public boolean canViewCategorie1() {
            return /* true or false */ ;
        }
     
    }
    Puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void viewCategorie1() {
          if ( User.getInstance().canViewCategorie1() ) {
                // ...
          }
    }


    a++

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut
    Ouah je suis fier de moi j'avais presque pensez pareil que toi !!

    Merci beaucoup en tout cas pour votre aide à tous

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

Discussions similaires

  1. Récupération des droits utilisateur
    Par albanhig dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 18/05/2007, 17h10
  2. Réponses: 5
    Dernier message: 17/08/2006, 10h10
  3. gestion des droits utilisateurs struts
    Par ijklm dans le forum Struts 1
    Réponses: 1
    Dernier message: 18/05/2006, 19h17
  4. [SGBD] Gérer des droits avec php/mysql
    Par pontus21 dans le forum Administration
    Réponses: 9
    Dernier message: 04/05/2006, 19h56
  5. Utiliser MySqlAdmin avec des droits utilisateurs sur XP
    Par thorgal85 dans le forum Outils
    Réponses: 2
    Dernier message: 18/03/2005, 12h19

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