Spring boot 检测Angular JS+中的并发登录;SpringBootWeb应用程序

Spring boot 检测Angular JS+中的并发登录;SpringBootWeb应用程序,spring-boot,spring-session,Spring Boot,Spring Session,我希望能够检测并发登录,并让用户决定选择什么操作。当检测到并发登录时,我希望让新用户从以下选项中进行选择: 登录并注销旧用户 取消新用户登录,以便旧用户仍然登录 如果您使用的是spring-security,则可以控制此操作。以下代码示例适用于使用springbootstarterweb和springbootstartersecurity依赖项的springbootweb应用程序(如果需要,还可以使用springsession风格) 假设您不希望来自同一用户的并发登录超过2次,并且您希望阻止以

我希望能够检测并发登录,并让用户决定选择什么操作。当检测到并发登录时,我希望让新用户从以下选项中进行选择:

  • 登录并注销旧用户

  • 取消新用户登录,以便旧用户仍然登录


如果您使用的是
spring-security
,则可以控制此操作。以下代码示例适用于使用
springbootstarterweb
springbootstartersecurity
依赖项的springbootweb应用程序(如果需要,还可以使用springsession风格) 假设您不希望来自同一用户的并发登录超过2次,并且您希望阻止以后的任何登录:

@Configuration
@EnableWebSecurity
public class AppSecurityConfig extends WebSecurityConfigurerAdapter {

   //override this method as required
   public UserDetailsService userDetailsService() {} 


    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.sessionManagement()
             .maximumSessions(2)
             .maxSessionsPreventsLogin(true)//prevents login for > 2attempts and sends to the authentication-failure-url
             .sessionRegistry(sessionRegistry());
    }

    @Bean
    public SessionRegistry sessionRegistry() {
        return new SessionRegistryImpl();
    }
}
如果您想要细粒度的控制,您可以使用上面的
sessionRegistry
bean获取主体(用户)并使其会话过期等


更多信息可在

的文档中找到,问题是什么?我如何实现所描述的行为。