CheckUser
pour qu’au lieu de
créer un cookie il ajoute un attribut de
clé "utilisateur"
à la session, contenant le nom de
l’utilisateur loggué :
HttpSession session = request.getSession();
session.setAttribute("utilisateur", name);
Bilan.java
pour qu’il refuse de
répondre si l’utilisateur n’est pas identifié, c’est-à-dire si la
clé "utilisateur"
n’est pas définie dans la session.
Refuser de répondre se fait en envoyant un statut HTTP autre que
« 200 OK
». Cela peut éventuellement être une erreur.
Ici on se contentera de rediriger vers une autre URL (en
utilisant le code HTTP 302 Found
), ce qui se fait
avec la méthode sendRedirect("url")
de la
classe HttpServletResponse
:
String name = (String) session.getAttribute("utilisateur");
if (name != null) {
...
} else {
response.sendRedirect("login.html");
}
CheckUser
une
méthode isLoginValid()
qui vérifie si le nom
d’utilisateur et le mot de passe sont corrects (vous pouvez écrire
ce que vous voulez dans cette méthode pour le moment, on verra en
manip 8 comment utiliser une base de données pour répondre). S’ils
sont incorrects, on ne crée pas la clé "utilisateur"
dans la session et on affiche un message d’erreur.Logout
qui détruit la session (en
utilisant session.invalidate()
) et ajouter un lien pour
se délogguer sur la page principale. N’oubliez pas qu’en plus de
détruire la session, le servlet doit envoyer une réponse au
navigateur (cette réponse peut éventuellement être une redirection).
Testez à chaque étape. En particulier vérifiez bien qu’il est impossible au final d’accéder au bilan après s’être déloggué ou bien en ayant fourni un mot de passe incorrect.