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 :

Redirection si non authentifié.


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut Redirection si non authentifié.
    Bonjour,

    désolé de vous déranger autant de fois en si peu de temps mais vous l'aurez compris, je débute en jsf.

    1 - Comment fait-on pour rediriger vers une autre page au chargement de la page? En clair quel est l'équivalent de header("Location: ./maPage.php/"); de php en java?

    2 - Dois-je mettre ce code dans init, preprocess, prerender ?

    Merci

  2. #2
    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
    Par défaut
    Citation Envoyé par poti67 Voir le message
    Bonjour,

    désolé de vous déranger autant de fois en si peu de temps mais vous l'aurez compris, je débute en jsf.

    1 - Comment fait-on pour rediriger vers une autre page au chargement de la page? En clair quel est l'équivalent de header("Location: ./maPage.php/"); de php en java?

    2 - Dois-je mettre ce code dans init, preprocess, prerender ?

    Merci
    il n'y a pas de quoi être désolé, le forum est fait pour ça .

    comment tu gère l'authentification?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut
    Salut,

    en fait pour l'authentification ça marche bien : en fonction du profil de la personne j'arrive à rendre mes buttons enables ou disabled.
    J'ai un Bean scope session

    Utilisateur uti = (Utilisateur) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("BeanUtilisateur");

    ensuite uti.getProfil();

    ce que je voudrais c'est, au chargement de la page si uti.getProfil() différent de 1 renvoyer vers Menu.jsp

  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
    Par défaut
    si tu viens d'une action JSF, tu peux utiliser les navigation-rules

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut
    Merci sniper je vais essayer. Mais le code qui aboutira au je le mets où? init, preprocess, prerender?

  6. #6
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    On utilise pas la méthode PHP avec JSF (test au début de chaque page).

    Le plus simple serait d'utiliser un Filtre que tu associes à la FacesServlet ou à des URLs données (genre /priv/*) et d'effectuer le test dans le filtre.

    Voici un exemple de filtre : http://blog.developpez.com/djo-mos?t...ees_dans_jsf_r

    Tu n'as qu'à le simplifier pour faire ce test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Utilisateur uti = (Utilisateur) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("BeanUtilisateur");
     
    ensuite uti.getProfil();

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut
    Une petit précision pour être sûr :
    Si j'ai bien compris, la méthode employée en C# qui consiste à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    protected void PageLoad(object sender, EventArgs e) {
       if(Session["id"] == null) {
             Response.Redirect("session1.aspx");
       }
    }
    ne peut pas être appliquée à java avec un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    publivvoid preprocess() {
       Utilisateur uti = (Utilisateur) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("BeanUtilisateur");
       if(uti.getProfil().toString().equals("profil1") {
             return "case1";
       }
    }
    avec
    <navigation-case>
    <from-outcome>case1</from-outcome>
    <to-view-id>/Menu.jsp</to-view-id>
    </navigation-case>

  8. #8
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Oui, du moins, pas directement comme tu le montre.

    Maintenant, tu peux utiliser d'autres mécanismes comme le filtre (ce que j'ai déjà montré ou encore un phaseListener).

    Essais de faire une petite recherche dans le forum JSF (même pas, regarde dans la page du forum, tu trouveras un sujet sur l'exécution d'une méthode avant l'affichage d'une page )

  9. #9
    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
    Par défaut
    je ne sais pas comment ça marche en C#, mais
    pour la navigation ou pour la redirection, il faut utiliser les navigation rules, comment ça marche: tu viens d'une action un commandButton par exemple, un traitement et suivant le traitement tu peux retourner success ou failure (outcome), ensuite la redirection s'effectue suivant la regle définit dans le face-config.
    pour une gestion plus évolué de la sécurité, soit tu utilises le filtre, soit tu interdit l'acces directe à toute ressources JSF avec ton serveur d'application.( les security constraintes si tu es sur tomcat)

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut
    Je ne trouve pas de sujet dans le forum sur l'exécution d'une méthode avant l'affichage d'une page. T'as pas un lien ?

    Le phaseListener ne me convient pas car il ne s'applique pas à une page mais à toutes (enfin si j'ai bien compris...)

  11. #11
    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
    Par défaut
    dans la page source

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:commandButton value="login" action="#{bean.action}" />
    dans le bean

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public String action() {
     
    if(condition)
      return "page1";
    else
    return "page2";
    }
    faces-config

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <navigation-rule>
    	<display-name>test</display-name>
    	<from-view-id>/pageSource.jsp</from-view-id>
    	<navigation-case>		
    		<from-outcome>page1</from-outcome>
    		<to-view-id>/page1.jsp</to-view-id>
    	</navigation-case>
    <navigation-case>		
    		<from-outcome>page2</from-outcome>
    		<to-view-id>/page2.jsp</to-view-id>
    	</navigation-case>
    </navigation-rule>

  12. #12
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Citation Envoyé par poti67 Voir le message
    Je ne trouve pas de sujet dans le forum sur l'exécution d'une méthode avant l'affichage d'une page. T'as pas un lien ?
    http://www.developpez.net/forums/d60...dexecuter-jsp/

    @Sniper37> Ce n'est pas ça son problème (comment naviguer d'une page à une autre), mais plutôt comment effectuer un traitement avant d'afficher une page (vérifier si connexion ou pas) et éventuellement faire une navigation.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut
    @sniper37 Effectivement je cherche à faire ca sans commandButton.
    Merci à tous les 2.

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

Discussions similaires

  1. redirection lorsque non loggué
    Par Invité dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 04/03/2009, 22h32
  2. Gestion du mode non authentifié
    Par parasol007 dans le forum Struts 1
    Réponses: 4
    Dernier message: 25/06/2008, 16h15
  3. Redirection une fois authentifié
    Par isagarran dans le forum Apache
    Réponses: 5
    Dernier message: 21/05/2008, 18h57
  4. Réponses: 7
    Dernier message: 15/12/2006, 09h22
  5. Redirection URL Non visible dans la barre d'adresse
    Par domileg dans le forum Langage
    Réponses: 5
    Dernier message: 04/08/2006, 09h02

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