Salut Tous le monde.
J'ai Un petit Souci concernant l'utilisation d'un filtre afin de restreidre l'accès direct à mes pages JSF de sorte qu'elle ne soit accessible qu'après authentification.
J'ai ajouter une classe qui implemente javax.servlet.filter.
voila le contenu de cette classe :
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
69
70
71
72
73
74
75
76
77
78
 
 
 
package com.project.filter;
 
import java.io.IOException;
 
import javax.faces.context.FacesContext;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
import com.project.managedbean.AuthentificationBean;
 
 
 
public class FIlterConnexion implements javax.servlet.Filter {
 
	protected ServletContext servletContext;
 
	public void destroy() {
		// TODO Auto-generated method stub
 
	}
 
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub
 
 
		  HttpServletResponse res = (HttpServletResponse) response;
      	 HttpServletRequest req=(HttpServletRequest)request;
//	      HttpSession session =
//	          ((HttpServletRequest)request).getSession(false);
//	      AuthentificationBean currentUser = (AuthentificationBean)session.getAttribute("LoginBean");
//	      
//	      if(currentUser==null){
//	    	  
//	    
//              res.sendRedirect(req.getContextPath() + "/denied.xhtml")  ;
//	    	  
//	      }
//	      else
//	      {
//	    	chain.doFilter(request,response);
//	      }
//		
 
		 AuthentificationBean bean =  (AuthentificationBean) FacesContext.getCurrentInstance().getCurrentInstance()
					.getExternalContext().getSessionMap().get("LoginBean");
		 String loginSession=bean.getLogin();
		 if(loginSession==null)
		 {
			 res.sendRedirect(req.getContextPath() + "/denied.xhtml")  ; 
 
		 }
		 else
		 {
			chain.doFilter(request, response);
		 }
 
	}
 
	public void init(FilterConfig filterConfig) throws ServletException {
		// TODO Auto-generated method stub
 
		 servletContext = filterConfig.getServletContext();
 
	}
 
 
}
mais au moment ou j'essaie d'accéder à mes pages une erreur apparait :


java.lang.NullPointerException
at com.project.filter.FIlterConnexion.doFilter(FIlterConnexion.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)

De plus comme toutes ma pages sont située dans un dossier pages
dans webapp,comment je pourrais epargner la page login pour qu'elle ne soit pas intercepté par le filtre???
J'ai besoin d'un coup de main SVP.