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 :

Problème d'authentification JSF


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Par défaut Problème d'authentification JSF
    Bonjour,

    Je suis entrain de développer une application web j2ee avec les framworks (JSF/Richfaces/Hibernate). Et j'ai besoin d'aide pour mettre en place un system d'authentification, pour autoriser l'accès aux pages jsp de l'application. En fait, mon application comporte trois catégorie de comptes (administrateur, invité, utilisateur) et je veux que le contenu qui apparait après l’authentification dépend de la catégorie du compte.

    J'ai cherché sur le net mais j'ai pas trouvé de solution, alors si vous pouvez me donner des pistes, des liens vers des exemples ou tutoriaux qui traite le sujet ça m'aidera vraiment.
    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 129

  3. #3
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Par défaut
    Merci Malone comme meme mais j'utilise pas le framework spring mais le JSF qu'est ce que vous pouvez me proposer d'autres si vous avez une idée

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 129
    Par défaut
    Et bien c'est un sujet récurent sur ce forum ^^

    Tu as donc spring security qui te mache une partie du boulot, il existe il me semble d'autres solutions clefs en main sur la securité, il faut chercher.

    Tu as enfin la possibilité de faire toi même une gestion de l'authentification / permissions en jsf:

    -Un objet du domaine que l'on va nommer Utilisateur, avec un champ login, password, une string de profile, etc... bref selon tes besoins.
    -Un managedBean en scope session, que l'on va nommer UserBean par exemple, qui a pour attribut un Utilisateur
    -Une couche service qui te permet de récupérer un utilisateur en base de donnée via son login, et de l'authentifier par rapport à son password.

    Ensuite via une bête page de login qui tape sur ton managedBean UserBean tu vas setter l'utilisateur connecté.
    Vu que ton bean qui contient l'utilisateur connecté est en scope session, tu vas pouvoir t'en servir pour afficher ou non des composants de tes vues , avec l'attribut "rendered" des tags jsf, avec par exemple dans ton bean UserBean des methodes qui permettent de tester les droits d'un user, du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public boolean getIsAdministrateur {
    return this.utilisateur.getProfil().equals(PROFIL_ADMINISTRATEUR)
    }
    dans ton backing bean,et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <rich:menu blalblalba... rendered="#{monUserBean.getUtilisateur.isAdministrateur}">
    dans une vue.

    En dehors de l'affichage conditionnel de parties de tes pages, tu peux récupérer dans les méthodes de tes managedBean ton utilisateur connecté, et décider par exemple une redirection si besoin, des traitements métiers appropriés etc...

    L'idéal serait aussi d'interdire l'accès directe aux urls, il y a un paramètre tomcat pour faire cela mais je n'arrive plus à mettre la main dessus.

    Cela te permet d'avoir une solution vraiment basique d'authentification, je ne peux que te conseiller de te pencher sur les solutions plus sérieuses type spring secu etc si tu veux quelque chose de vraiment costaud.

  5. #5
    Membre éclairé Avatar de liquideshark
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2006
    Messages : 347
    Par défaut
    Salut ,

    Je suis aussi debutant j'utilise une astuce traditionelle c'est d'inserer dans tes jsf :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <%-- 
        Document   : secure
        Created on : 16 oct. 2010, 01:46:53
        Author     : jamal
    --%>
     
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
     
    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page import="javax.faces.context.FacesContext"%>
    <%@ page import="javax.faces.el.ValueBinding"%>
    <%
    FacesContext context = FacesContext.getCurrentInstance();
    ValueBinding properties = context.getApplication().createValueBinding("#{MyBean.properties}");
    String name = (String) properties.getValue(context);
    if(name.equals("true")){
        out.print("ok");
     }else{
           %>
      <jsp:forward page="error.jsp"/>
        <%}%>
    pour le moment je me contente de ce code avant de maitriser les filtres et autre framework

  6. #6
    Membre éclairé Avatar de liquideshark
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2006
    Messages : 347
    Par défaut
    re

    Autre astuce je post un exemple :

    Dans ton bean ta ceci :
    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
    17
     
        public String getVoirred() {
     
    try {
                FacesContext.getCurrentInstance().getExternalContext().redirect("http://errors.jsp/");
            } catch (IOException ex) {
                Logger.getLogger(ManagedBean.class.getName()).log(Level.SEVERE, null, ex);
            }
     
            return voirred;
        }
     
        public void setVoirred(String voirred) {
            this.voirred = voirred;
        }
     
        String voirred = "";
    t'ajoute les conditions sur les utilisateurs en fontion de cela tu fais les redirections
    et dans le JSF au debut de la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:form>
                    <h:inputHidden value="#{ManagedBean.voirred}" />
    </h:form>
    A mon avis c'est plus propre ?

Discussions similaires

  1. [Sécurité] JSF problème pour authentification
    Par isnake dans le forum Java EE
    Réponses: 0
    Dernier message: 04/03/2012, 17h51
  2. [Security] Hibernate + Spring security + JSF. Problème d'authentification
    Par haile dans le forum Spring
    Réponses: 5
    Dernier message: 23/06/2011, 15h35
  3. [LDAP] Problème d'authentification via PHP
    Par navis84 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 21/07/2006, 09h45
  4. [Tomcat] Problème d'authentification au Proxy
    Par Tangi29 dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 12/06/2006, 10h39

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