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

Servlets/JSP Java Discussion :

sauvegarder url pour redirection après identification


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 168
    Points : 103
    Points
    103
    Par défaut sauvegarder url pour redirection après identification
    bonjour.

    j'ai un système de gestion des membres sur mon appli servlet/jsp.
    si un visiteur appelle une servlet alors qu'il est pas identifié, je redirige le visiteur vers la page d'identification. plusieurs questions :

    - j'ai fais cette redirection dans la methode "service" de chacune de mes servlets avec un getServletContext().getRequestDispatcher("/Login").forward(request, response);

    est-bien ? est-infaillible ?

    - deuxième question. je voudrais qu'une fois que le visiteur s'est identifié, il soit redirigé vers la page à laquelle il voulait accéder lorsqu'il n'était pas encore identifié. comment faire ?


    merci d'avance !

    aurélien.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut
    pour la deuxième question, je peux peut être te donner une piste :
    tu as peut être la possibilité d'encoder ton url actuelle et de la mettre à la fin de ton url de login en param :
    Classe action appelée par accès direct non autorisé utilisateur :
    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
     
    public class MaPageAction extends Action {
     
    	public ActionForward execute(
    			ActionMapping mapping,
    			ActionForm form,
    			HttpServletRequest request,
    			HttpServletResponse response)
    		throws Exception{
     
          if(!isUserIdentifie(...)){
    // redirection vers une jsp
    session = new session();
    session.setAttribute("urlprec", urlactuelle);
    return mapping.findforward('page redirection authentification');
     
    }
     
    }
    Et dans ta jsp :
    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
     
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     
    <%@ taglib uri="struts-bean" prefix="bean" %>
    <%@ taglib uri="struts-logic" prefix="logic" %>
    <%@ taglib uri="struts-html" prefix="html" %>
    <%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
     
    <%@ page language="java" %>
     
    <html:html locale="true">
    <head>
      <title><bean:message key="erreur.title"/></title>
      <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
      <meta http-equiv="Content-Script-Type" content="text/javascript">
      <meta http-equiv="Content-Style-Type" content="text/css">
      <link rel="stylesheet" type="text/css" href="commun/css/style.css" media="screen" title="Normal">
      <script language="JavaScript">
    	function rediriger() {
    		window.location=urlDeLogin+"?"+"<%=session.getAttribute("urlprec")%>";
    	}
    	rediriger();
    	</script>
    </head>
    <body>
    </body>
    </html:html>
    Sinon il y a un tag jsp qui peut te faire ca aussi je crois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <jsp:redirect page="monActionLog.do?+urlprec"/>
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 168
    Points : 103
    Points
    103
    Par défaut
    bonsoir.

    merci bcp pour votre réponse.

    mais je n'utilise pas struts

    ya-t-il une solution sans utiliser struts ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Points : 540
    Points
    540
    Par défaut
    Citation Envoyé par aurelientp Voir le message
    - j'ai fais cette redirection dans la methode "service" de chacune de mes servlets avec un getServletContext().getRequestDispatcher("/Login").forward(request, response);

    est-bien ? est-infaillible ?
    Oui ça devrait faire l'affaire. Peut-être aussi si tu as des JSP, vérifier que l'utilisateur est authentifié dans chaque début de JSP (pour éviter qu'il tape directement l'URL de la JSP dans le navigateur).

    Citation Envoyé par aurelientp Voir le message
    - deuxième question. je voudrais qu'une fois que le visiteur s'est identifié, il soit redirigé vers la page à laquelle il voulait accéder lorsqu'il n'était pas encore identifié. comment faire ?
    J'ai pas testé, mais tu peux tenter ça (je pense que tu es obligé de le faire en 2 temps) :

    Dans la première servlet à laquelle il tente d'accéder tu fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    request.setAttribute("destPath", request.getServletPath());
    getServletContext().getRequestDispatcher("/Login").forward(request, response);
    Et dans /Login :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (isAuthenticated(user)) {
        String destPath = (String)request.getAttribute("destPath");
        getServletContext().getRequestDispatcher(destPath).forward(request, response);
    }
    else {
    // ...
    }

Discussions similaires

  1. [Joomla!] problème de redirection apres identification sur frontend en local
    Par dadal56 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 12/01/2010, 16h17
  2. [1.x] Récupérer l'url pour redirection automatique future
    Par blasil64 dans le forum Symfony
    Réponses: 7
    Dernier message: 28/12/2009, 15h34
  3. Redirection après identification
    Par ghada025 dans le forum Langage
    Réponses: 6
    Dernier message: 12/09/2008, 14h49
  4. Réponses: 7
    Dernier message: 19/03/2008, 16h07
  5. Réponses: 9
    Dernier message: 13/05/2006, 23h43

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