Bonjour tt le monde ,
je veux interdire l'accès à quelques pages de mon application en saisissant leur URL directement dans le browser,l'utilisateur doit d'abord s’authentifier avant d’accéder a aucune page jsp .
merci d'avance ^^
Version imprimable
Bonjour tt le monde ,
je veux interdire l'accès à quelques pages de mon application en saisissant leur URL directement dans le browser,l'utilisateur doit d'abord s’authentifier avant d’accéder a aucune page jsp .
merci d'avance ^^
bonjour,
-1- tu peux mettre tes pages jsp dans le répertoire WEB-INF par exemple, il faudra alors les appeler par l'intermédiaire d'une servlet.
-2- ou alors, tu crées un répertoire dans lequel tu mets toutes les jsp nécessitant une authentification et tu crées un filtre dans lequel tu testes les droits. Si c'est bon accès accordé sinon tu renvoies sur la page d'authentification.
Le filtre teste à chaque tentative d'acces au repertoire souhaité si l'acces est autorisé.
dans cet exemple, on teste si l'utilisateur a une session.
Le repertoire se nomme "restreint"
rajoute ce qui suit dans le web.xmlCode:
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 package com.monPackage.filters; 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; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class RestrictionFilter implements Filter { public static final String ACCES_PUBLIC = "/authentification.jsp"; public static final String ATT_SESSION_USER = "sessionUtilisateur"; public void init( FilterConfig config ) throws ServletException { } public void doFilter( ServletRequest req, ServletResponse res, FilterChain chain ) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; HttpSession session = request.getSession(); /** * Si l'objet utilisateur n'existe pas dans la session en cours, alors * l'utilisateur n'est pas connecté. */ if ( session.getAttribute( ATT_SESSION_USER ) == null ) { response.sendRedirect( request.getContextPath() + ACCES_PUBLIC ); } else { chain.doFilter( request, response ); } } public void destroy() { } }
Code:
1
2
3
4
5
6
7
8
9 <filter> <filter-name>RestrictionFilter</filter-name> <filter-class>com.monPackage.filters.RestrictionFilter</filter-class> </filter> <filter-mapping> <filter-name>RestrictionFilter</filter-name> <url-pattern>/restreint/*</url-pattern> </filter-mapping>