Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
d3:tp05 [2025/09/28 19:33] – dthevenot | d3:tp05 [2025/10/03 14:09] (Version actuelle) – [Autres évolutions/Améliorations possibles] dthevenot | ||
---|---|---|---|
Ligne 92: | Ligne 92: | ||
</ | </ | ||
</ | </ | ||
- | ===== III. Comment fonctionne la session1 | + | ===== III. Comment fonctionne la session |
==== 1. À la suite d'un appel à request.getSession() : ==== | ==== 1. À la suite d'un appel à request.getSession() : ==== | ||
Ligne 106: | Ligne 106: | ||
* Se positionner sur l' | * Se positionner sur l' | ||
- | * Cliquer sur la ligne de la requête POST, l' | + | * Cliquer sur la ligne de la requête POST, l' |
* On retrouve également cet identifiant dans l' | * On retrouve également cet identifiant dans l' | ||
+ | {{: | ||
===== IV. Modification de l' | ===== IV. Modification de l' | ||
Actuellement, | Actuellement, | ||
- | Après une authentification réussie, il faudra mettre en session un booléen (isAuthentified) | + | L' |
+ | - créer une **table salarie** dans la base de données qui contient leur login, mot de passe et leur rôle (estAdmin, booléen : administrateur ou pas) | ||
+ | - créer la **javabean SalarieMysql** pour gérer les salariés (2 méthodes : readAll() et lireSalarie((String login, String mdp))) | ||
+ | - créer une méthode **existeUser**(HttpServletRequest request) dans la classe **AuthentifForm** qui retourne un booléen pour vérifier l' | ||
+ | - changer la méthode **controlerAdmin** de la classe AuthentifForm pour utiliser le **rôle** du salarié qui s' | ||
+ | |||
+ | Après une authentification réussie, il faudra mettre en session un booléen (**isAuthentified**) indiquant cette réussite ou non (méthode | ||
Ensuite il faudrait faire en sorte qu' | Ensuite il faudrait faire en sorte qu' | ||
- | Cette façon de procéder fonctionne, mais le problème, c'est qu'il faudrait reproduire cette modification dans toutes les servlets. Ce qui n'est pas satisfaisant. | + | |
+ | <del>Cette façon de procéder fonctionne, mais le problème, c'est qu'il faudrait reproduire cette modification dans toutes les servlets. Ce qui n'est pas satisfaisant. | ||
Au lieu d' | Au lieu d' | ||
Ligne 122: | Ligne 130: | ||
Pour créer un filtre : | Pour créer un filtre : | ||
- | * onglet File>New File> | + | * onglet |
- | * Nommer ce filtre AuthentifFilter, | + | * Nommer ce filtre |
- | * Cocher la case "Add information to deployment descriptor (web.xml)", | + | * Cocher la case "**Add information to deployment descriptor (web.xml)**", puis **Next et Finish** |
- | Remplacer | + | Dans la classe AuthentifFilter.java, |
< | < | ||
// Cast de l' | // Cast de l' | ||
Ligne 139: | Ligne 147: | ||
boolean authentificationOK = false; | boolean authentificationOK = false; | ||
if (maSession.getAttribute(" | if (maSession.getAttribute(" | ||
- | | + | |
- | maSession.getAttribute(" | + | |
} | } | ||
if (authentificationOK) { | if (authentificationOK) { | ||
Ligne 155: | Ligne 162: | ||
Vérifier la présence de 2 nouvelles sections au niveau du fichier web.xml : < | Vérifier la présence de 2 nouvelles sections au niveau du fichier web.xml : < | ||
- | Peut-être avez-vous remarqué un problème concernant les caractères spéciaux (accent, tréma, | ||
- | Télécharger **filtreEncodage.xml** depuis le Drive, et en copier le contenu | + | < |
- | ====== Résumé ====== | + | Télécharger **filtreEncodage.xml** depuis le Drive, et en copier le contenu dans votre fichier **web.xml**, |
+ | </ | ||
+ | < | ||
* Il existe 4 portées d' | * Il existe 4 portées d' | ||
Ligne 174: | Ligne 182: | ||
ArrayList < | ArrayList < | ||
* La mémorisation d'un attribut de session s' | * La mémorisation d'un attribut de session s' | ||
- | < | + | < |
- | * Un **filtre** est un objet Java qui peut modifier les entêtes et le contenu d'une requête http avant l' | + | |
- | * C'est dans la méthode doFilter du filtre que l'on vérifiera la présence d'une variable de session indiquant si l' | + | |
===== V. Amélioration de l’application ===== | ===== V. Amélioration de l’application ===== | ||
À partir de la liste des clients, proposer la modification | À partir de la liste des clients, proposer la modification | ||
- | * Quand l' | + | * Quand l' |
À vous de voir s'il y a besoin de créer des variables de session. Les méthodes doGet et doPost de la servlet se compliquent un peu : elles doivent désormais gérer les 2 cas : création ou modification. | À vous de voir s'il y a besoin de créer des variables de session. Les méthodes doGet et doPost de la servlet se compliquent un peu : elles doivent désormais gérer les 2 cas : création ou modification. | ||
- | ==== 1. Modification de l' | + | ==== 1. Modification de l' |
- | + | Ajouter une colonne intitulée | |
- | Ajouter une colonne intitulée Action au tableau. Au niveau de chaque ligne de cette colonne, | + | |
- Quelle servlet s' | - Quelle servlet s' | ||
- Quelle méthode de cette servlet sera sollicitée ? | - Quelle méthode de cette servlet sera sollicitée ? | ||
Ligne 200: | Ligne 204: | ||
- Quelle méthode de cette servlet sera sollicitée ? | - Quelle méthode de cette servlet sera sollicitée ? | ||
==== 4. Modifier à nouveau la servlet afin d' | ==== 4. Modifier à nouveau la servlet afin d' | ||
+ | ===== VI.Autres évolutions/ | ||
+ | - suppression d'un client | ||
+ | - hachage du mot de passe | ||
+ | - sécurisation de l' | ||
+ | - ajout favicon | ||
+ | - ... | ||
+ | |||