Java 如何确保在Spring Security中不使用同一帐户同时登录两个不同的人?

Java 如何确保在Spring Security中不使用同一帐户同时登录两个不同的人?,java,spring,spring-mvc,spring-security,Java,Spring,Spring Mvc,Spring Security,我有一个SpringMVC应用程序,它不保护带有事务的用户数据更新 它假定在任何时候只有一个用户访问该帐户的帐户数据 但是,如果两个用户使用相同的身份验证凭据登录,理论上可能(尽管不太可能)在同一用户数据上进行两次数据库更新,但会发生重叠和冲突 在Spring Security中有没有一种简单的方法来防止这种情况发生?在用户数据库中添加一个名为“登录”的列。如果设置了该值,则拒绝第二次登录。Spring安全性支持防止并发登录。有关如何启用它的说明,请参阅。Aaron Digulla的回答是最好的

我有一个SpringMVC应用程序,它不保护带有事务的用户数据更新

它假定在任何时候只有一个用户访问该帐户的帐户数据

但是,如果两个用户使用相同的身份验证凭据登录,理论上可能(尽管不太可能)在同一用户数据上进行两次数据库更新,但会发生重叠和冲突


在Spring Security中有没有一种简单的方法来防止这种情况发生?

在用户数据库中添加一个名为“登录”的列。如果设置了该值,则拒绝第二次登录。

Spring安全性支持防止并发登录。有关如何启用它的说明,请参阅。

Aaron Digulla的回答是最好的。BalusC的建议并不好,因为如果有人窃取了您的登录凭据,那么他可以访问系统,合法用户将被注销。如果这个人是邪恶的,那么他可以更改密码,合法用户不能再访问他/她的帐户


最好的方法是亚伦建议的。

我宁愿用另一种方法:注销任何具有相同凭据的登录用户。否则,在会话过期之前,您将无法登录。