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 :

Problème avec les cookies


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Webmaster
    Inscrit en
    Octobre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2006
    Messages : 41
    Par défaut Problème avec les cookies
    Bonjour à tous,

    Je programme une application java à l aide des jsp et de Struts et je rencontre quelques problèmes avec le stockage des cookies dans mon navigateur.

    Voici mon code:
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    // Created by Xslt generator for Eclipse.
    // XSL :  not found (java.io.FileNotFoundException:  (No such file or directory))
    // Default XSL used : easystruts.jar$org.easystruts.xslgen.JavaClass.xsl
     
    package com.dunod.lesjsp.action;
     
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
     
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.sql.DataSource;
     
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    import com.dunod.lesjsp.form.MembreForm;
     
    /** 
     * IdentAction.java created by EasyStruts - XsltGen.
     * http://easystruts.sf.net
     * created on 07-26-2007
     * 
     * XDoclet definition:
     * @struts:action path="/IdentAction" name="MembreForm" attribute="IdentForm" input="/index.jsp" validate="true"
     * @struts:action-forward name="/index.jsp" path="/index.jsp"
     */
    public class IdentAction extends Action {
     
    	// --------------------------------------------------------- Instance Variables
     
    	// --------------------------------------------------------- Methods
     
    	/** 
    	 * Method execute
    	 * @param ActionMapping mapping
    	 * @param ActionForm form
    	 * @param HttpServletRequest request
    	 * @param HttpServletResponse response
    	 * @return ActionForward
    	 * @throws Exception
    	 */
    	public ActionForward execute(
    		ActionMapping mapping,
    		ActionForm form,
    		HttpServletRequest request,
    		HttpServletResponse response)
    		throws Exception {
    		MembreForm MembreForm = (MembreForm) form;
     
    		//connexion  la base de donnes
    		DataSource dataSource;
    		Connection myConnection;
     
    		try{
    			dataSource = getDataSource(request);
    			myConnection = dataSource.getConnection();
     
    			//rcupration des valeurs du bean MembreForm
    			String login = ((MembreForm)form).getLogin();
    			String loginUp = login.toUpperCase();
    			String pass = ((MembreForm)form).getPass().toUpperCase();
     
    			PreparedStatement stmt = myConnection.prepareStatement("SELECT login, pass FROM membres where upper(login)=? and upper(pass)=?)");
    			stmt.setString(1,loginUp);
    			stmt.setString(2,pass);
    			ResultSet rs = stmt.executeQuery();
     
    			if(rs.next()){
    				Cookie lesjspCookie = new Cookie("login", login);
    				lesjspCookie.setMaxAge(60*60*24*365);
    				response.addCookie(lesjspCookie);
    			}
    			else{
    				request.setAttribute("loginFaux", "Mauvais identifiant ou mot de passe, ressayer");
    			}
    		}
    		catch(SQLException sqle){
    				System.out.println(sqle);
    		}
    		return mapping.findForward("index");
    	}
     
    }
    J'accèdes à la page index.jsp qui si aucun cookie n est présent me demande de m authentifier et dans ce cas dépose un cookie. Le cookie étant retrouvé il passe et affiche 2 liens permettant d'accéder à la liste des projets ou des consultants.

    Je ne comprends pas vraiment pourquoi mon navigateur (firefox) n accepte pas ce cookie alors qu il en accepte d'autres (ex. google)...

    Quelqu'un pourrait m aider???
    Merci

  2. #2
    Membre averti
    Profil pro
    Webmaster
    Inscrit en
    Octobre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2006
    Messages : 41
    Par défaut
    Bon à voir personne ne peut m aider...

  3. #3
    Membre expérimenté Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Par défaut
    La façon dont tu crées ton cookie m'a l'air correcte...
    Es-tu certain que ton problème provienne du stockage du cookie par ton navigateur ?
    Ne vois-tu pas ton cookie dans la liste des cookies de Firefox (Tools > Options... > Privacy > Show Cookies...) ?
    Ne serait-ce pas plutôt un problème au niveau de la récupération du cookie (en effet, s'il y a un problème à ce niveau, tu passeras à chaque fois par l'authentification, même si ton cookie a été correctement stocké...) ?
    Peux-tu montrer le code via lequel tu testes la présence du cookie ?

  4. #4
    Membre averti
    Profil pro
    Webmaster
    Inscrit en
    Octobre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2006
    Messages : 41
    Par défaut
    J ai bien un cookie qui vient se mettre mais je suppose que c est celui qui enregistre le mot de passe et le login après pour l insérer automatiquement quand j essaie de me loguer. Mais ce n 'est pas ce lui nommer login que je désire créer... Je ne comprends pas vraiment pour celui que je tente de créer n est pas stocker alors que les autres oui...

    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
    35
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
     
     
    <logic:present cookie="login">
    	<bean:cookie id="foo" name="login"/>
    	Bienvenue <%=foo.getValue()%>
    	<a href=projet.jsp>Voir les offres de projets</a>
    	<a href=consultant.jsp>Voir les consultants</a>
    </logic:present>
     
    <logic:notPresent cookie="login">
     
    	<%      
                    String loginFaux = (String)request.getAttribute("loginFaux");
                    if(loginFaux!=null){
                            out.println(loginFaux);
                    }
            %>
     
    	<html:form action="IdentAction.do">
    		<table>
    			<tr>
    				<td>Identifiant</td>
    				<td><html:text property="login"/></td>
    			</tr>
    			<tr>
    				<td>Mot de passe</td>
    				<td><html:password property="pass"/></td>
    			</tr>
    		</table>
    		<html:submit value="Valider"/>
    	</html:form>
    </logic:notPresent>
    dans ce fichier index.jsp je test s il est présent ou pas. S il l'est j affiche 2 liens sinon j affiche le formulaire d'authetification...

  5. #5
    Membre expérimenté Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Par défaut
    Ton application crée d'autres cookies ?
    Tu ne vois pas le cookie nommé "login" ?

    Juste pour savoir : pourquoi ne remplaces-tu pas la page JSP ci-dessus par un filtre (= une servlet appelée à chaque fois qu'une nouvelle session HTTP est créée) ?
    Un filtre me semblerait plus approprié mais c'est mon avis personnel...

  6. #6
    Membre averti
    Profil pro
    Webmaster
    Inscrit en
    Octobre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2006
    Messages : 41
    Par défaut
    Je n y ai pas forcément réfléchis!
    En fait je suis entrain d'apprendre les jsps au travers d'un livre et c est la solution qu il a adopté!
    Non c est le seul cookie que je crée...

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

Discussions similaires

  1. [Web Service][SOAP] Problème avec les cookies
    Par bilel.1st dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 12/05/2008, 17h30
  2. [Cookies] Problème avec les cookies
    Par ishikawa dans le forum Langage
    Réponses: 4
    Dernier message: 18/06/2007, 16h03
  3. Problème avec les cookies d'identification du forum sur mon poste
    Par Flow_75 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 3
    Dernier message: 13/03/2007, 10h57
  4. Réponses: 1
    Dernier message: 24/12/2006, 00h09
  5. Réponses: 9
    Dernier message: 18/05/2006, 14h37

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