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 :

Authentification JSF + Realm tomcat


Sujet :

JSF Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 30
    Points : 30
    Points
    30
    Par défaut Authentification JSF + Realm tomcat
    Bonjour,

    Je viens vers vous avec le problème de conception suivant :

    J'utilise une authentification par le realm de tomcat (gestion des rôles, ressources et utilisateurs LDAP).

    Ce que je souhaite, c'est récupérer le login de l'utilisateur une fois que celui ci s'est authentifié, et l'enregistrer dans mon bean "utilisateur". Etant donné que le realm gère automatique cette authentification, le seul moyen que j'ai trouvé pour récupérer le login de l'utilisateur une fois que celui ci à passé la barrière du realm est via la méthode suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((HttpServletRequest) request).getUserPrincipal().getName()
    Maintenant je cherche un moyen propre pour appeler cette méthode. Pour l'instant je procède avec un filtre appelé automatiquement sur toutes les pages qui vérifie si l'utilisateur existe en session, et si ce n'est pas le cas je met celui ci dans mon bean avec le login récupéré (avec la méthode ci dessus).

    Mais beaucoup de soucis se posent à partir du moment ou je suis dans le filtre. Je n'ai pas accès au FacesContext par exemple, et je suis donc obliger de l'initialiser moi même. Outre le fait que c'est plutôt crade, cela ne fonctionne pas très bien (fonctionnalités limitées, crash d'autres composants que j'utilise, trinidad par ex).

    Pouvez vous me conseiller une meilleur démarche à suivre ? Ou alors comment utiliser le FacesContext proprement dans un filtre ?

    En esperant avoir été clair dans mon explication.
    Lukas

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    Ce n'est pas le rôle d'un filtre que de faire ce traîtement, et ce n'est pas crade de mettre en session lors du premier chargement de ta page le user

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 30
    Points : 30
    Points
    30
    Par défaut
    Je ne vois pas d'autre manière que de le faire avec un filtre.
    Pouvez vous m'orienter ?

    Merci

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par LukasP. Voir le message
    Bonjour,


    J'utilise une authentification par le realm de tomcat (gestion des rôles, ressources et utilisateurs LDAP).
    Pourquoi as tu besoin de tester si le user est en session si tu gère la sécurité avec le realm de tomcat.?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 30
    Points : 30
    Points
    30
    Par défaut
    En fait j'utilise un annuaire LDAP pour la connexion via le realm, et l'appli elle même utilise une base de donnée postgresql.
    Le LDAP n'est la que pour l'authentification, donc une fois qu'un utilisateur a passé celle ci, je veux vérifier s'il existe dans la base de donnée PG (si non alors je l'ajoute) etc.

    Ce que je souhaite au final, c'est qu'une fois que l'utilisateur est authentifié via le realm, je créé un objet user avec les informations récupérées de la table user de PG et qui correspondent au login LDAP fournie lors l'authentification, et ensuite pouvoir disposer de cet objet dans toute l'application.

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par LukasP. Voir le message
    En fait j'utilise un annuaire LDAP pour la connexion via le realm, et l'appli elle même utilise une base de donnée postgresql.
    Le LDAP n'est la que pour l'authentification, donc une fois qu'un utilisateur a passé celle ci, je veux vérifier s'il existe dans la base de donnée PG (si non alors je l'ajoute) etc.

    Ce que je souhaite au final, c'est qu'une fois que l'utilisateur est authentifié via le realm, je créé un objet user avec les informations récupérées de la table user de PG et qui correspondent au login LDAP fournie lors l'authentification, et ensuite pouvoir disposer de cet objet dans toute l'application.
    oui, mais pourquoi tu ne délègue pas le gestion des autorisations à tomcat?
    Normalement si l'utilisateur n'est pas authentifié il n'aura pas accés à une page c'est pour cela je ne vois pas l'intérêt de tester la présence du user dans la session à chaque appel de la JSP.
    Sinon, si tu ne veux pas utiliser la gestion de l'authentification/authorisations avec le serveur, tu peux redéfinir le phaseListener de JSF et y tester si le user est bien en session..

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/11/2014, 16h40
  2. [ Tomcat ] [ Struts ] Authentification par REALM & STRUT
    Par tioneb369 dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 30/10/2006, 16h05
  3. authentification realm / tomcat /jboss
    Par cybernatus dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 02/08/2006, 18h14
  4. Realm Tomcat Action & Authentification
    Par zekey dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 21/12/2005, 10h46
  5. Authentification Windows via TOMCAT
    Par Spi25 dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 21/07/2004, 10h03

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