1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ValiderConnexionActionForm validerConnexionAdminActionForm =
(ValiderConnexionActionForm) form;
System.out.println("Tentative de connexion d'un utilisateur");
String login = validerConnexionAdminActionForm.getLogin();
String password = validerConnexionAdminActionForm.getPassword();
String type = validerConnexionAdminActionForm.getType();
WapGame jeuEnregistre = WapGame.getWapGame(
Configuration.JEU_NOM_BASE);
UtilisateurEnregistre utilisateurEnregistre = null;
try {
utilisateurEnregistre = jeuEnregistre.seConnecter(login, password);
} catch (JoueurBanniException ex) {
ActionMessages errors = new ActionMessages();
ActionMessage error = new ActionMessage(
"validerConnexion.errors.banni", ex.getMessage());
errors.add("connexionLoginBanni", error);
saveErrors(request.getSession(), errors);
Statistique.log("Login", "JOUEUR_BANNI",
"Tentative de connection de login [" + login + "].");
return mapping.getInputForward();
} catch (JoueurDejaLoggeException ex) {
ActionMessages errors = new ActionMessages();
ActionMessage error = new ActionMessage(
"validerConnexion.errors.dejaLogge", ex.getMessage());
errors.add("connexionLoginDejaLogge", error);
saveErrors(request.getSession(), errors);
Statistique.log("Login", "JOUEUR_DEJALOGGE",
"Tentative de connection de login [" + login + "].");
return mapping.getInputForward();
}
if (utilisateurEnregistre != null) {
// si c'est un utilisateur enregistré il faut
// verifier ensuite si c'est un joueur ou un admin
if (utilisateurEnregistre.isJoueur()) {
((Joueur) utilisateurEnregistre).setSessionId(
request.getSession().getId());
Langue langue = utilisateurEnregistre.getLangueChoisie();
request.getSession().setAttribute("joueur",
utilisateurEnregistre);
request.getSession().setAttribute("dossierCourant",
Configuration.NOM_BOITE_RECEPTION);
request.getSession().setAttribute("langue", langue);
if (langue != null) {
setLocale(request, new Locale(langue.getAcronyme()));
}
Statistique.log("Login", "JOUEUR_OK",
"Tentative de connection de login [" + login + "].");
return mapping.findForward(SUCCESSJOUEUR);
} else if (utilisateurEnregistre.isAdministrateur()) {
request.getSession().setAttribute(Configuration.LOGIN_ADMIN,
utilisateurEnregistre);
return mapping.findForward(SUCCESSADMIN);
} else {
ActionMessages errors = new ActionMessages();
ActionMessage error = new ActionMessage(
"validerConnexion.errors.login.invalid");
errors.add("connexionLoginWrong", error);
saveErrors(request.getSession(), errors);
return mapping.findForward(UNSUCCESSADMIN);
}
} else {
ActionMessages errors = new ActionMessages();
ActionMessage error = new ActionMessage(
"validerConnexion.errors.login.invalid");
errors.add("connexionLoginWrong", error);
saveErrors(request.getSession(), errors);
if (type.equals("joueur")) {
Statistique.log("Login", "JOUEUR_PASOK",
"Tentative de connection de login [" + login + "].");
return mapping.findForward(UNSUCCESSJOUEUR);
} else if (type.equals(Configuration.LOGIN_ADMIN)) {
return mapping.findForward(UNSUCCESSADMIN);
} else {
return mapping.getInputForward();
}
}
} |