2010-10-07 4 views
2

J'ai une application Spring MVC qui ne protège pas les mises à jour des données utilisateur avec les transactions.Comment faire en sorte que le même compte ne soit pas utilisé pour connecter deux personnes différentes en même temps dans Spring Security?

Il suppose qu'un seul utilisateur accède aux données de compte pour ce compte à un moment donné. Cependant, si deux utilisateurs devaient se connecter en utilisant les mêmes informations d'authentification, il est théoriquement possible, bien que peu probable, que deux mises à jour de base de données sur les mêmes données utilisateur se chevauchent et soient en conflit.

Existe-t-il un moyen simple de se protéger contre cela dans Spring Security?

Répondre

2

Ajoutez une colonne à la base de données utilisateur appelée "connecté". Si cette valeur est définie, refusez une seconde connexion. Spring Security prend en charge la protection contre les connexions simultanées.

+2

Je préfère le faire dans l'autre sens: déconnectez tout utilisateur connecté avec les mêmes informations d'identification. Sinon, vous ne pourrez pas vous connecter tant que la session n'aura pas expiré. – BalusC

0

La réponse d'Aaron Digulla est la meilleure. La suggestion de BalusC n'est pas bonne parce que si quelqu'un vole vos identifiants de connexion alors il peut avoir accès au système et l'utilisateur légitime sera déconnecté. Si cette personne est destinée au mal, il peut changer le mot de passe et l'utilisateur légitime ne peut plus accéder à son compte.

Le meilleur moyen est ce qu'Aaron a suggéré.

Questions connexes