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 JSF si utilisateur non enregistré


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de chriscoolletoubibe
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Par défaut redirection JSF si utilisateur non enregistré
    Bonjour, je suis actuellement entrain de développer une application JSF + facelets. (Et..et...je débute en JSF).
    Dans cette application il y a une page d'authentification etj'aimerais que l'on arrive sur cette dernière si on est pas un utilisateur enregistré.

    Je me suis dit (peut être naïvement) qu'en mettant dans le template.xhtml
    une balise "choose" que je pourrais, en fonction de l'existence de l'utilisateur dans la session, et ce quelques soit la page qui invoque ce template bien précis, faire ma redirection vers ma "view-id" login de mon fichier faces-config.xml.

    Un bout de code vaut mieux qu'un long discours:

    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
     
    <html xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:t="http://myfaces.apache.org/tomahawk"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:c="http://java.sun.com/jstl/core">
     
    (...)
     
     
    <c:choose>
      <c:when test="${sessionScope.user== null}">
            //ici j'aimerais rediriger vers l'action login
      </c:when>
      <c:otherwise>
      (...)
      <ui:insert:"content"/>
      (...)
      </c:otherwise>
    <c:choose>
    (...)
    Un deuxieme bout de code vaut mieux qu'un deuxieme long discours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    (...)
    <navigation-rule>
    	<from-view-id>*</from-view-id>
    	<navigation-case>
    	<from-outcome>login</from-outcome>
    	<to-view-id>/login.xhtml</to-view-id>
    	</navigation-case>
    </navigation-rule>
    (...)
    Nikel, la condition fonctionne et empêche le template de charger le reste et donc d'inclure les vues!

    Le soucis: comment faire une telle redirection?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    (...)
    <c:when test="${sessionScope.user== null}">
            //ici j'aimerais rediriger vers l'action login
      </c:when>
    (...)
    Quelqu'un à une idée (ou peut-être une solution plus élégante) ?

    (merci d'avance)

  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
    tu peux le faire en étendant la classe PhaseListener.

  3. #3
    Membre confirmé
    Avatar de chriscoolletoubibe
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    tu peux le faire en étendant la classe PhaseListener.
    je peu faire la redirection ?
    ou alors c'est une solution plus élégante?

  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
    ouii tu teste la phase, si c'est RenderResponse si l'utilisateur n'est pas en session, tu peux faire une redirection en java.

  5. #5
    Membre confirmé
    Avatar de chriscoolletoubibe
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Par défaut
    ouai effectivement ca a l'air sympa! mais ne vaudrait il pas mieux ne rien tester de sorte a ce que rien ne soit faisable si l'utilisateur n'est pas logué?

  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
    Par défaut
    tester la phase est utile pour ne pas faire le traitement pendant chaque phase du cycle JSF.

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 05/06/2018, 09h36
  2. Réponses: 10
    Dernier message: 07/06/2006, 12h56
  3. fonction utilisateur non reconue par sql server 2000
    Par ouedmouss dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/09/2005, 07h46
  4. [ToutlookApplication] Classe non enregistrée
    Par nico33410 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 22/08/2005, 10h36
  5. lancer serveur FB en tant qu'utilisateur non administrateur
    Par didier.cabale dans le forum Débuter
    Réponses: 1
    Dernier message: 01/03/2005, 18h05

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