Bonjour à tous, je suis vraiment coincé avec un problème lié aux filtres.
En j'ai mis en place une classe LoginFilter comme décrit ci-dessous:
En fait dès que je mets la ligne @WebFilter("/*") et que je tente d'accéder au lien localhost:8088/GestionTaches/user.xhtml alors le navigateur me redirige vers ce lien qui est localhost:8088/GestionTacheslogin.xhtml qui me pose problème.
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 <div style="margin-left:40px"> package gct.dao.servlets; import java.io.IOException; import javax.faces.application.ResourceHandler; 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; /** * Servlet Filter implementation class LoginFilter */ @WebFilter("/*") public class LoginFilter implements Filter { private static final String AJAX_REDIRECT_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<partial-response><redirect url=\"%s\"></redirect></partial-response>"; public void destroy() { } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request=(HttpServletRequest)req; HttpServletResponse response=(HttpServletResponse)res; HttpSession session=request.getSession(false); String loginURI=request.getContextPath()+"login.xhtml"; boolean loggedIn=(session!=null)&&(session.getAttribute("user")!=null); boolean loginRequest=request.getRequestURI().equals(loginURI); boolean resourceRequest=request.getRequestURI().startsWith(request.getContextPath()+ResourceHandler.RESOURCE_IDENTIFIER+ "/"); boolean ajaxRequest = "partial/ajax".equals(request.getHeader("Faces-Request")); if(loggedIn||loginRequest||resourceRequest){ if (!resourceRequest) { // Prevent browser from caching restricted resources. response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. response.setHeader("Pragma", "no-cache"); // HTTP 1.0. response.setDateHeader("Expires", 0); // Proxies. } chain.doFilter(request, response); } else if(ajaxRequest){ response.setContentType("text/xml"); response.setCharacterEncoding("UTF-8"); response.getWriter().printf(AJAX_REDIRECT_XML, loginURI); } else{ response.sendRedirect(loginURI); } } public void init(FilterConfig config) throws ServletException { } } </div>
Je sollicite votre aide cordialement merci!
Partager