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获取主体(用户)并使其会话过期等
更多信息可在的文档中找到,问题是什么?我如何实现所描述的行为。