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:

Nom : structure projet.png
Affichages : 133
Taille : 10,5 Ko

1. Classe SessionFiltre

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() {
 
    }
 
 
}
Des qu'on accède après avoir saisi le login et le mot de passe la page suivante s'affiche:

Nom : affichage accueil.png
Affichages : 112
Taille : 181,6 Ko

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.

Nom : login2.png
Affichages : 113
Taille : 24,1 Ko

Pourquoi ce changement?