2014-06-30 4 views
0

Je souhaite limiter un utilisateur après trois tentatives infructueuses consécutives de connexion dans mon application Web. Est-il possible avec seulement HttpSession, sans opérations de base de données? J'utilise Spring MVC, mais n'utilise pas Spring-Security pour mon application web. S'il vous plaît me suggérer le chemin si c'est possible.Comment limiter un utilisateur après 3 tentatives infructueuses consécutives de connexion dans Java Web App?

+0

Avez-vous l'intention d'utiliser Spring Security? – geoand

+0

non..pour cette application .. ce n'est pas possible maintenant .. :( –

+0

Ok, je vois:) !!! – geoand

Répondre

0

Vous pouvez gérer un compteur en session combien de fois l'utilisateur n'a pas réussi à se connecter. Mais cela sera limité au navigateur si l'utilisateur a démarré un autre utilisateur HttpSession ne fonctionnera pas. Vous pouvez conserver cette base de données après la troisième défaillance du même navigateur. Généralement pour ce genre de tâche les gens préfèrent maintenir en db.

0

Pour une meilleure approche, vous avez besoin de HttpSession et de Database. Exemple: Les comptes peuvent être verrouillés après 3 tentatives infructueuses pour une période de 12 heures. Après 12 heures à nouveau s'il y a eu une tentative infructueuse, la période de verrouillage serait de 24 heures (ou plus), donc vous avez besoin d'une table de connexion pour stocker ces artefacts.

Il existe une bonne bibliothèque appelée ESAPI de OWASP, vérifiez-la. Il a principalement des interfaces qui vous permettent de l'implémenter mais il existe une implémentation de référence qu'il suffit d'explorer.

incrementFailedLoginCount(); 
    if (getFailedLoginCount() >= ESAPI.securityConfiguration().getAllowedLoginAttempts()) { 
          lock(); 
        } 
    throw new AuthenticationLoginException("Login failed", "Incorrect password provided for " + getAccountName()); 
Questions connexes