Bonjour à tous.
Je vous explique mon problème :
Je dois réaliser une application de connexion d'un utilisateur via ID/MDP.
Jusque la rien de complexe.
Cela dit, une fois connecté, je stock dans un bean divers attributs sur l'utilisateur, puis ferme la fenêtre et le dirige sur une page d'une autre application (pas sur le même serveur).
Ma question est la suivante :
Si l'utilisateur relance ma page de connexion, comment retrouver sa session, et donc le bean qu'elle contient (sachant que la durée de vie de la session est fixée à une journée) ?
J'ai tester environ 200 méthodes, et rien ne fonctionne...
Je peux bel et bien récupérer sa session si le navigateur n'est pas fermé (en stockant dans le servletContext des attributs (httpsession/idsession) et en les récupérant grâce au Cookie JSESSIONID, mais une fois la fenêtre fermée, bien que je récupère le cookie, la session n'existe plus !
J'ai vraiment besoin d'un coup de main sur ce coup la...
Auriez-vous une méthode fonctionnelle ?
Merci d'avance.
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 //HTTP Post public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession laSession = null; String identifiant = null; Cookie[] cookies = request.getCookies(); if (null != cookies) { for (int i = 0; i < cookies.length; i++) { Cookie c = cookies[i]; String name = c.getName(); String value = c.getValue(); if(name.equals("sessionId")) { identifiant = value; } } } if (identifiant!=null) { laSession = getSession(identifiant); if (laSession == null) { laSession = request.getSession(true); Cookie c = new Cookie("sessionId",laSession.getId()); response.addCookie(c); System.out.println("Cokkie trouvé, mais session créé : " + laSession.getId()); } else { System.out.println("Session retrouvée : " + identifiant); } } else { laSession = request.getSession(true); Cookie c = new Cookie("sessionId",laSession.getId()); response.addCookie(c); System.out.println("Session créée : " + laSession.getId()); } } private HttpSession getSession(final String sessionId) { final ServletContext context = getServletContext(); System.out.println(); final HttpSession session = (HttpSession) context.getAttribute(sessionId); return session; }
Partager