Exercice 3- Saisie d'un mot de passe
Dans les failles de sécurité réseau, on trouve très souvent les problèmes de
dépassement. Par exemple, sur certaines anciennes versions de telnet, un login ou
un mot de passe de plus d'un mega-octet faisait "planter" le programme et on
obtenait alors un accès root au système. Ce programme va gérer ce type de
problème en séparant les exceptions pour une meilleure gestion.
1- Écrire un programme stand-alone qui demande en boucle un nom d'utilisateur
(login) et un mot de passe (pwd) jusqu'à recevoir un login/pwd correct.
Le seul utilisateur référencé sera scott / tiger ( à mettre en constante dans la classe
principale ).
2- Implémenter les exceptions suivantes:
* WrongLoginException qui se produit lorsque l'utilisateur saisit un login inexistant
* WrongPwdException lorsque le mot de passe est erroné
* WrongInputLength lorsque le login où le pwd saisi dépasse 10 caractères.
3- Implémenter de façon à utiliser ces exceptions de façon judicieuse et avec la
granulosité la plus fine.
Remarque: La lecture de l'entrée standard peut lever une java.io.IOException...
Dans les failles de sécurité réseau, on trouve très souvent les problèmes de
dépassement. Par exemple, sur certaines anciennes versions de telnet, un login ou
un mot de passe de plus d'un mega-octet faisait "planter" le programme et on
obtenait alors un accès root au système. Ce programme va gérer ce type de
problème en séparant les exceptions pour une meilleure gestion.
1- Écrire un programme stand-alone qui demande en boucle un nom d'utilisateur
(login) et un mot de passe (pwd) jusqu'à recevoir un login/pwd correct.
Le seul utilisateur référencé sera scott / tiger ( à mettre en constante dans la classe
principale ).
2- Implémenter les exceptions suivantes:
* WrongLoginException qui se produit lorsque l'utilisateur saisit un login inexistant
* WrongPwdException lorsque le mot de passe est erroné
* WrongInputLength lorsque le login où le pwd saisi dépasse 10 caractères.
3- Implémenter de façon à utiliser ces exceptions de façon judicieuse et avec la
granulosité la plus fine.
Remarque: La lecture de l'entrée standard peut lever une java.io.IOException...
Solution:
1:creez une classe WrongInputLength qui herite de classe Exception
public class WrongInputLength extends Exception {
WrongInputLength(){
System.out.println("login ou password depasse 10 caractere :");
}
}
2:creez une classe WrongLoginException qui herite de classe Exception
public class WrongLoginException extends Exception{
WrongLoginException()
{
System.out.println("login non valide :");
}
}
3:creez une classe WrongPwdException qui herite de classe Exception
public class WrongPwdException extends Exception {
WrongPwdException()
{
System.out.println("password non valide :");
}
}
4:creez une methode main qui regroupe toutes les classes crees
import java.util.Scanner;
public class Test1 {
final static String login="tiger";
final static String password="scott";
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String log="vide",pwd="vide";
int c=0;
do{
c++;
try{
System.out.println("entrer un login :");
log=sc.nextLine();
System.out.println("entrer un password :");
pwd=sc.nextLine();
if(pwd.length()>10||log.length()>10) throw new WrongInputLength();
if(!log.equals(login)) throw new WrongLoginException();
if(!pwd.equals(password)) throw new WrongPwdException();
}catch(WrongLoginException e){
}
catch(WrongPwdException e){
}
catch(WrongInputLength e){
}
}while((!log.equals(login)||!pwd.equals(password))&&c<3);
}
//public static void
}