Java 如何在JWT令牌使用Spring引导时禁用同一用户帐户的多次登录

Java 如何在JWT令牌使用Spring引导时禁用同一用户帐户的多次登录,java,spring-security,jwt,jhipster,Java,Spring Security,Jwt,Jhipster,如何在JWT令牌使用Spring引导时禁用同一用户帐户的多次登录。如何在JHIPSTER应用程序中实现这一点。 我正在使用Jhipster 3.12.2。 在spring security中,您可以通过以下方式配置会话管理并控制单个用户的最大会话数: sessionManagement() .最多会议(1) .maxSessionsPreventsLogin(真); maximumSessions控制用户的最大会话数。默认设置是允许任意数量的用户 maxSessionsPreventsLogi

如何在JWT令牌使用Spring引导时禁用同一用户帐户的多次登录。如何在JHIPSTER应用程序中实现这一点。 我正在使用Jhipster 3.12.2。

在spring security中,您可以通过以下方式配置会话管理并控制单个用户的最大会话数:

sessionManagement()
.最多会议(1)
.maxSessionsPreventsLogin(真);
maximumSessions
控制用户的最大会话数。默认设置是允许任意数量的用户

maxSessionsPreventsLogin
如果设置为true,则在达到
最大会话数时阻止用户进行身份验证

因此,在jhipster应用程序中,您可以在
SecurityConfiguration
文件中进行如下配置,以防止同一用户多次登录:

@覆盖
public void configure(HttpSecurity http)引发异常{
http
.csrf()
.disable()
.addFilterBefore(corsFilter,UsernamePasswordAuthenticationFilter.class)
.例外处理()
.authenticationEntryPoint(问题支持)
.accessDeniedHandler(问题支持)
.及()
.headers()
.frameOptions()
.disable()
.及()
.授权请求()
.antMatchers(“/api/register”).permitAll()
.antMatchers(“/api/activate”).permitAll()
.antMatchers(“/api/authenticate”).permitAll()
.antMatchers(“/api/account/reset password/init”).permitAll()
.antMatchers(“/api/account/reset password/finish”).permitAll()
.antMatchers(“/api/**”).authenticated()
.antMatchers(“/websocket/tracker”).hasAuthority(AuthoritiesConstants.ADMIN)
.antMatchers(“/websocket/**”).permitAll()
.antMatchers(“/management/health”).permitAll()
.antMatchers(“/management/info”).permitAll()
.antMatchers(“/rest/**”).permitAll()
.antMatchers(“/management/**”).hasAuthority(AuthoritiesConstants.ADMIN)
.及()
.apply(SecurityConfigureAdapter())
.及()
.会议管理()
.sessionCreationPolicy(sessionCreationPolicy.STATELESS)
.最多会议(1)
.maxSessionsPreventsLogin(真);
}

这最多只允许一个用户。这不适合这个问题。我的问题是,我不允许同一用户同时从浏览器、台式机/笔记本电脑、tab或移动设备或任何其他设备登录。在任何时间点,每个用户只有一个活动会话。@Karunakerredyv,它不仅仅针对一个用户!它控制每个用户的最大会话数。我对此进行了测试,发现当一个用户登录时,它不允许任何其他用户登录。@Karunakerredyv我进行了测试,我可以与多个用户登录,但每个用户都可以登录一次!欲了解更多信息,请访问