Spring Security,表单登录和并发会话

我试图限制用户多次签名(强制前一个会话到期)。

我在这里查看了有关该主题的文档。 我将其设置为非常类似于文档,但用户一次不限于一个会话。 我可以使用同一个用户多次登录(在不同的浏览器中)并且有多个并发会话。

以下是我认为是我的安全设置的相关内容。 我正在使用自定义UserDetailsS​​ervice,UserDetails和AuthenticationFilter实现。

   [...]                                      

我还在我的web.xml文件中注册了org.springframework.security.web.session.HttpSessionEventPublisher作为监听器。

据我所知,我根据文档配置了这个。 我不知道为什么这不起作用。 它是否与我使用基于表单的登录这一事实有关? 或者我上面提到的自定义实现?

我想到了。 如果重新实现UserDetails,则必须为SessionRegistryImpl提供hashCode()方法才能使用。 文档中未提及此内容。

我知道这已经得到了解答,但有一个更简单的解决方案,不需要配置特定的filter。 您可以在http标记中添加以下XML来配置会话:

    

基于表单的登录配置的其余部分也过于复杂。 我在这里写了一篇文章http://codehustler.org/blog/spring-security-form-login-tutorial/ ,它展示了如何正确配置表单登录。