Bonjour,
2 heures que je me prends la tête sur un fichu truc en java.
L'idée est pourtant très simple. J'ai une page login.jsp, qui balance le formulaire d'autentification a une servlet CheckLogin, si ce formulaire est bien saisi, alors CheckLogin créé une variable de session de type User, et charge index.jsp
Au chargement d'index.jsp, j'ai un include chargant la servlet VerifLogin, dont le rôle est de verifier la présence du bean User dans la session, et si elle ne le trouve pas, elle en déduit que la personne n'est pas autentifiée, et n'a donc pas le droit de voir index.jsp, hop on met une erreur
Seulement voilà, rien n'y fait, quand j'accède une 1ere fois à index.jsp j'ai le message m'indiqaunt que j'suis pas loggé donc pas le droit de rentrer, et si j'y retourne une seconde fois, cette fois index.jsp s'affiche !! j'ai fais des traces de partout, et c'est certain, un bean User est créé a un moment donné, et il fausse mon test, mais je ne sais pas où !!!
Voilà le code de mes servlets/jsp incriminées :
verifUser.java
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
User plop = null;
plop= (User) req.getSession(false).getAttribute("user");
if ( plop == null){
System.out.println("in");
getServletContext().getRequestDispatcher("/denied").forward(req,resp);
return;
}
System.out.println(plop);
}
index.jsp
<jsp:include page="/verifUser"/>
<jsp:useBean id="user" class="beans.User" type="beans.User" scope="session"></jsp:useBean>
Bienvenue <jsp:getProperty name="user" property="login" /> !
bla bla bla...
Voilà, a aucun moment je ne fais appel a getSession().setAttribute, donc je en vois pas pourquoi ma variable plop devient non-null au 2ème passage !!
Merci énoooormément pour votre aide
# Hmmm
Posté par Edouard Gomez (site web personnel) . Évalué à 1.
Cela consiste a proteger des zones, si l'objet Principal en session ne renvoit pas le bon role, alors l'uilisateur est renvoyé via j_security_check vers la page adequate. Il faut donc definir des realms, et tout les zoes protegees dans le web.xml.
Je n'ai pas d'url a proposer, dsl, mais je suis sûr qu'une ame charitable ou Google en dernier recours pourraient te trouver ca :-)
Sinon j'ai pas vu d'erreurs flagrantes dans ton code.
[^] # Re: Hmmm
Posté par cho7 (site web personnel) . Évalué à 0.
C'est une sorte de fierté personnelle, quand ca ne marche pas alors que "ca devrait", c'est plus fort que moi....
# 2 heures
Posté par kesako . Évalué à 1.
# sessionId ?
Posté par Cédric Chantepie . Évalué à 1.
# C'est bon
Posté par cho7 (site web personnel) . Évalué à 3.
C'est tellement con que j'ose pas y croire...
En fait le jsp:useBean instancie un objet. Dans mes phases de débuggages j'lavais mis en commentaire pour voir si c'etait lui, et j'en avais déduit que non, mais en fait, les commentaires html sont ignorés par java, donc le code s'executait toujours...
bref....
Merci quand même pour votre aide
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.