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:
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>
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.
Je sollicite votre aide cordialement merci!