Vous êtes sur la page 1sur 3

CAS YAKA

Dossier A – Authentification et habilitations de l’application Holy

Mission A1 – Mobilisation des bonnes pratiques pour la classe Utilisateur

Question A1.1 Corriger les erreurs de nommage présentes dans cette méthode

public boolean ancienMdp(String mdp) {


boolean existeMdp = false;
int i = 0;
while (i < this.lesAnciensMdp.getSize() && existe == false) {

if (this.lesAnciensMdp.get(i).getValMdp().equals(mdp)) {
existeMdp = true;
}
else {
i = i + 1;
}
}
return existeMdp;

Question A1.2 Proposer une documentation au format Javadoc pour cette


méthode.

La méthode va vérifier si un mot de passe est présent dans la liste des anciens mots de
passe de l'utilisateur.

Le paramètre mdp est le mot de passe à vérifier.

La valeur de retour est existeMdp, true si le mot de passe est dans la liste des anciens mots
de passe, sinon false.

Question A2.1 Identifier la complexité des mots de passe attendue lors de


l’authentification des utilisateurs.

Le mot de passe attendu lors de l’authentification doit être de 12 caractères ou plus, avec
une majuscule, une minuscule, un chiffre et un caractère spéciaux.

Question A2.2 Écrire le code de la méthode modifierMdp de la classe


Utilisateur
public boolean modifierMdp(String valMdp) {
if (verifierMdp(valMdp) && !ancienMdp(valMdp)) {
lesAnciensMdp.add(new MotDePasse(valMdp, LocalDate.now()));
this.motDePasse = valMdp;
return true;
} else {
return false;
}
}

Question A3.1 Ajouter une méthode de test verifModifierMdp pour compléter


vos tests unitaires.

@Test // définit une méthode de test unitaire


void verifModifierMdp () {
assertTrue("M0p@5pakedtb");
assertFalse("MotdePasse11");
assertFalse("motd3p@sseee");
assertFalse("MOTDEP@SSE11");
assertFalse("M0tdeP@sse");

Question A3.2 Décrire un scénario de risque exploitant l’absence de restriction


d’accès aux éléments du menu de l'application.

Il existe un risque au niveau de la confidentialité et de l'intégrité, n'importe quel utilisateur


pourrait accéder à des données personnelles et des données sensibles comme les
informations des utilisateurs ainsi que les contrats. Cela pourrait compromettre la
confidentialité.

Il en est de même pour l'intégrité. Un utilisateur pourrait manipuler des données de


l'entreprise s'il peut accéder à tous les éléments du menu. Par exemple, il pourrait modifier
des contrats de vente ou des informations sur les intervenants, entraînant des problèmes
légaux.

Question A3.3
a. Écrire le code de la méthode getNiveauHabilitation de la classe Utilisateur.

public int getNiveauHabilitation() {


return sonHabilitation.getNiveau();
}

b. Compléter le code du constructeur de la classe AppliHoly.


public AppliHoly(Utilisateur unUtil) throws HeadlessException {
// Instanciation de tous les composants graphiques du formulaire
// Y compris tous les éléments du menu de l'application (code non fourni)
// ...

leUtilConnecte = unUtil;
int niveauUtilisateurConnecte = leUtilConnecte.getNiveauHabilitation();

for (ElementMenu element : lesElementsMenu) {


int niveauElementMenu = element.getNiveauHabilitation();

if (niveauElementMenu <= niveauUtilisateurConnecte) {


element.setAccessible(true);
} else {
element.setAccessible(false);
}
}
}

Vous aimerez peut-être aussi