Bonjour,

J'ai des difficult�s � comprendre pourquoi mon javax.servlet.Filter ne fonctionne pas sur l'authentification.

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
 
<!--  FILTER AUTHENTIFCATION -->
  <filter>
  <display-name>Login Filter</display-name>
  <filter-name>LoginFilter</filter-name>
  <filter-class>sessionUser.LoginFilter</filter-class>
 </filter>
<filter-mapping>
	<filter-name>LoginFilter</filter-name>
	    <url-pattern>/j_security_check</url-pattern>
</filter-mapping>
Je rentre bien dans la m�thode "init" de mon Filtrer au lancement de l'application, mais jamais par la m�thode "doFilter".

Est ce quelqu'un voit le souci de configuration ?

Pour que je passe par cette m�thode il faut que tape "http://localhost:8080/monappli/j_security_check"

J'ai la configuration suivante et j'utilise JSF :

Dans mon web.xml :

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
 
 
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>monappli</display-name>
  <welcome-file-list>
    <welcome-file>/index.jsp</welcome-file>
  </welcome-file-list>
 
  <!-- FACES JSF -->
  <context-param>
    <param-name>javax.faces.CONFIG_FILES</param-name>
    <param-value>/WEB-INF/faces-config.xml</param-value>
  </context-param>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
  
  <!-- SECURITY AUTHORISATION -->
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>monappli Manager</web-resource-name>
      <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>admin</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Unsecured resources</web-resource-name>
      <url-pattern>/template/*</url-pattern>
    </web-resource-collection>
  </security-constraint>
    <!-- AUTHENTIFICATION -->
  <login-config>
    <auth-method>FORM</auth-method>
    <realm-name>monappliRealm</realm-name>
    <form-login-config>
      <form-login-page>/login.jsp</form-login-page>
      <form-error-page>/login_error.jsp</form-error-page>
    </form-login-config>
  </login-config>
  <security-role>
    <role-name>admin</role-name>
  </security-role>
 
<!--  FILTER AUTHENTIFCATION -->
  <filter>
  <display-name>Login Filter</display-name>
  <filter-name>LoginFilter</filter-name>
  <filter-class>sessionUser.LoginFilter</filter-class>
 </filter>
<filter-mapping>
	<filter-name>LoginFilter</filter-name>
	    <url-pattern>/j_security_check</url-pattern>
</filter-mapping> 
 
</web-app>
Mon Filter :

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
 
package sessionUser;
 
import java.io.IOException;
 
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.http.HttpServletRequest;
 
public class LoginFilter implements Filter {
 
	private FilterConfig filterConfig = null;
 
	  public void doFilter(ServletRequest request, ServletResponse response,
	    FilterChain chain)
	    throws IOException, ServletException 
	  {
 
	    long start = System.currentTimeMillis();
	    String address =  request.getRemoteAddr();
	    String file = ((HttpServletRequest) request).getRequestURI();
 
	    chain.doFilter(request, response);
 
	    filterConfig.getServletContext().log(
	        "User access! " +      
	        " User IP: " + address +      
	        " Resource: " + file + 
	        " Milliseconds used: " + (System.currentTimeMillis() - start) 
	    );
	  }
 
	  public void destroy() { }
 
	  public void init(FilterConfig filterConfig) {
	    this.filterConfig = filterConfig;
	  }
 
 
 
}

Ma page login :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
 
...
<form method="post" action="j_security_check" >
Nom d'utilisateur : <input type="text" name="j_username" />
<br />
Mot de passe : <input type="password" name="j_password" />
<br /><br /><br />
<input type="submit" value="Connexion"/>
</form></div>
....