2015-04-22 291 views
0

此刻我试图删除已登录的用户在其他系统或使用管理员用户的不同浏览器。注销用户,当它被管理员删除时用户

现在,当一个用户被删除时,它应该从登录的任何地方注销。

我已经在某一时刻使用春季安全会话管理(并发控制)停止从日志用户到应用程序中两次http://wiki.pentaho.com/display/ServerDoc2x/Concurrent+Sessions+(Preventing+Users+from+Logging+in+More+Than+Once)

但问题是,当它已经被删除了会议应该得到无效的用户和它应该注销并且因为它已被删除而不能够返回。

底层数据库是marklogic,我可以获得该用户的活动sessionId,但我应该也可以使该会话无效。

请让我知道有什么可用的选项?

回答

0

您可以使用Spring安全性的SessionRegistry。下面

沿着这一个的行的代码段应该这样做:

List<SessionInformation> userSessions = sessionRegistry.getAllSessions(user, false); 
    for (SessionInformation sessionInfo : userSessions) { 
     sessionRegistry.removeSessionInformation(sessionInfo.getSessionId()); 
    } 

你应该能够自动装配的SessionRegistry,然后用它如上所述。

如果你已经知道用户的sessionId然后将下面的代码应该工作以及:

sessionRegistry.removeSessionInformation(sessiondId); 
+0

非常感谢......我会给它一个尝试,会看到它如何去... – Rohit

相关问题