Bonjour à tous,
je développe actuellement une appli web java sous Glassfish v2 (et Netbeans 6.1).
Certaines pages de l'application ne peuvent être visualisées que par des utilisateurs détenteurs d'un compte ET connectés.
Programmant habituellement en PHP, j'ai d'abord utilisé la session pour stocker les données du client connecté, et à chaque requête vers une page protégée, je vérifiais simplement que les données en session n'étaient pas vides.
Seulement, il est possible aussi de configurer cette authentification en précisant certains paramètres dans le fichier web.xml et en mettant les pages à protéger dans le répertoire WEB-INF, d'après ce que j'ai compris.
Voici donc un extrait du web.xml en question :
Voici un extrait de login.jsp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <login-config> <auth-method>FORM</auth-method> <realm-name/> <form-login-config> <form-login-page>/login.jsp</form-login-page> <form-error-page>/error.jsp</form-error-page> </form-login-config> </login-config>
J'avais lu dans un cours sur JAAS qu'il fallait que l'attribut action du formulaire soit forcément j_security_check, et les paramètres j_username et j_password.
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 <h1>Login</h1> <form action="j_security_check" method="post"> <div class="input"> <label for="j_username"> <c:if test="${login_errors==true}"> <span class='error'>* </span> </c:if>Username: </label> <input type="text" id="j_username" name="j_username" /> </div><div class="clearer"> </div> <div class="input"> <label for="j_password"> <c:if test="${login_errors==true}"> <span class='error'>* </span> </c:if> Password: </label> <input type="password" id="j_password" name="j_password" /> </div><div class="clearer"> </div> <div class="inputSubmit"> <input type="submit" value="Submit" /> </div> </form>
Est-ce correct ?
Ce qui m'échappe, c'est qu'aucune Servlet n'intervient là-dedans du coup...
Actuellement, les données sont stockées dans le ServletContext, mais vont bientôt être stockées en BD...
Comment le serveur peut deviner où sont stockées les données ? Il faut nécessairement que je précise à un endroit ou à un autre où les récupérer, non ?
Evidemment, l'authentification ne fonctionne pas, et je suis vraiment dans le flou. Si quelqu'un pouvait éclairer ma lanterne, je lui en serais éternellement reconnaissant
Merci d'avance,
Rolf IV
Partager