Bonjour,
J'ai des difficultés à comprendre pourquoi mon javax.servlet.Filter ne fonctionne pas sur l'authentification.
Je rentre bien dans la méthode "init" de mon Filtrer au lancement de l'application, mais jamais par la méthode "doFilter".
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>
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 :
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
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>
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> ....
Partager