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 :

Demande d'info sur la redirection JSF2 Primefaces


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 23
    Par défaut Demande d'info sur la redirection JSF2 Primefaces
    Bonjour,

    est-ce qu'il y a une taglib JSF2 ou primefaces qui permet la redirection à l'interieur d'une page xhtml ? 20

  2. #2
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Pour faire de la redirection tu crée une methode qui te renvoi String contenant le nom de la page exemple si ta page s'appelle 'page.xhtml' tu retourne 'page'

  3. #3
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 23
    Par défaut
    Merci pour ta réponse, mais ce n'est ce que je cherche,

    Mon but est :

    si quelqu'un (pas encore authentifié) essaie d'accéder à la page d'accueil du site par la saisie de son lien dans la barre d'adresse, l'application doit lui rediriger automatiquement vers la page d'authentification.

    Ce cas peut être géré en utilisant une balise de redirection comme <c:redirect> de JSTL mais je trouve que JSF ne possède pas cette option

  4. #4
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Moi je te conseille de voir du coté de spring sécurity il le fait trés bien

  5. #5
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Bonjour,
    même si Spring Security répond à la question, je pense qu'il ne faut pas toujours prendre un lib externe (ajouter de nouvelles dépendances) quand le problématique qu'on veut régler peut se résoudre facilement et totalement par les APIs fournis par le JDK.
    Je pense aussi surtout qu'il faut un minimum (quand c'est possible et qu'on a le temps) savoir utiliser les solutions proposé par le JDK seul.
    En l'occurrence, si tu veux rediriger un user vers une autre quand il n'est pas encore authentifié, tu peux utiliser un filtre de servlet comme ceci:
    (1) Voici le code du filtre
    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
    27
    28
    29
    30
    31
    32
    33
    34
     
    public class LoginFilter implements Filter {
     
        private static Logger logger = LoggerFactory.getLogger(LoginFilter.class);
     
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
        }
     
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {
     
            HttpServletRequest req = (HttpServletRequest) request;
            HttpServletResponse resp = (HttpServletResponse) response;
            HttpSession session = req.getSession(false);
            User user = (session != null) ? (User) session.getAttribute("user") : null;
     
            if (user == null) {
                // Utilisateur non authentifié, on redirige vers la page de login.
                logger.warn("Tentative d'ouverture d'une page nécessitant une connexion, redirection vers la page de login !");
                String loginURL = req.getContextPath() + "/login.jsf";
                resp.sendRedirect(loginURL);
            } else {
                // Utilisateur loggué, on laisse continuer la requête.
                chain.doFilter(req, resp);
            }
        }
     
        @Override
        public void destroy() {
        }
     
    }
    (2) tu ajoutes ceci dans ton web.xml
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <filter>
        <description>Filtre permettant de vérifier si un utilisateur s'est authentifié ou pas avant d'accéder à une certaine page où le filtre est appliquée</description>
        <filter-name>Login Filter</filter-name>
        <filter-class>net.project.servlet.filter.LoginFilter</filter-class>
      </filter>
     <filter-mapping>
        <filter-name>Login Filter</filter-name>
        <!-- Bouhh, si tu veux accéder à la page de profile, il d'abord t'authentifier, allez, je te redirige ... -->
        <url-pattern>/profile.jsf</url-pattern>
      </filter-mapping>

    Remarque: Si tu utilises Servlet 3.0, tu peux directement utiliser les annotations au lieu d'ajouter des choses dans le web.xml. Dans ce cas, tu prends l'annotation @WebFilter que tu ajouter directement sur la classe LoginFilter.

    PS: La classe 'User' est la classe qui représente ton utilisateur dans ton projet (j'aurais pu l'appeler Utilisateur ...) à ne pas confondre avec une classe d'une quelconque autre api

    Cordialement,
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    Citation Envoyé par omarcisses Voir le message
    Pour faire de la redirection tu crée une methode qui te renvoi String contenant le nom de la page exemple si ta page s'appelle 'page.xhtml' tu retourne 'page'
    J'aimerais savoir s'il vous plait car je suis encore débutant avec Prime Faces pour la redirection d'une page 1 vers une page 2 à travers une méthode qui retourne un String par exemple on fais la même chose qu'avec rich faces çad un commandbutton avec une action=appel de la méthode ?

  7. #7
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Oui c'est la même chose car c'est pas le jeu de composant qui le fait mais plutôt jsf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p:commandButton value="Save"  action="#{personBean.savePerson}"/>
    coté xhtml


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public string savePerson(){
    return "page1";
    }

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    voilà Merci !

Discussions similaires

  1. Demande d'info sur MySQL 3.23.58
    Par gobs dans le forum Installation
    Réponses: 5
    Dernier message: 25/01/2006, 12h52
  2. demande d'infos sur le composant IBDataSet
    Par seb8810 dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/01/2006, 15h16
  3. [Débutant] Demande d'info sur OpenGL
    Par SkyDev dans le forum OpenGL
    Réponses: 2
    Dernier message: 01/03/2005, 23h58
  4. Demande d'info sur treeview
    Par Anaxagore dans le forum IHM
    Réponses: 6
    Dernier message: 28/08/2003, 18h27

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