Bonjour,
Je suis dans l’apprentissage de JSF et primefaces, aujourd'hui je veux sécurisé l'accès aux fichiers xhtml du dossier pel de mon application.
Voici la structure de mon projet:
1. Classe SessionFiltre
Des qu'on accède après avoir saisi le login et le mot de passe la page suivante s'affiche:
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 package filter; import java.io.IOException; import java.io.PrintStream; import java.io.PrintWriter; import java.io.StringWriter; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * * @author ERIWANG */ @WebFilter(filterName = "SessionFilter", urlPatterns = {"/*"}) public class SessionFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req1=(HttpServletRequest)request; HttpServletResponse res1=(HttpServletResponse)response; HttpSession session=req1.getSession(true); System.out.println("Current Path:"+req1.getRequestURL()); System.out.println("Session Attribut :"+req1.getSession().getAttribute("userlogin")); String sessionUser=(String)req1.getSession().getAttribute("userlogin"); String currentPath=req1.getRequestURL().toString(); if(sessionUser!=null){ if(currentPath.contains("Aeropro/authentification.xhtml")){ res1.sendRedirect(req1.getContextPath()+"/pel/index.xhtml"); }else{ chain.doFilter(request, response); } }else{ if(currentPath.contains("pel")){ res1.sendRedirect(req1.getContextPath()+"/authentification.xhtml"); }else{ chain.doFilter(request, response); } } } @Override public void destroy() { } }
Si clic sur le bouton déconnexion, on devrait se retrouver à la première page connexion avec la même mise en forme.
Mais je constate qu'en cliquant sur le bouton déconnexion on revient à la page de connexion sans la mise en forme.
Pourquoi ce changement?
Partager