管理员用户

时间:2015-04-22 12:55:11

标签: jquery spring-mvc spring-security

目前我正在尝试删除使用管理员用户在其他系统或其他浏览器上登录的用户。

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

我使用Spring安全会话管理(并发控制)http://wiki.pentaho.com/display/ServerDoc2x/Concurrent+Sessions+(Preventing+Users+from+Logging+in+More+Than+Once)

阻止用户在特定时刻登录应用程序两次

但问题是,当它被删除时,会话应该为该用户失效,它应该注销,并且不应该因为它已被删除而返回。

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

请告诉我有哪些选项?

1 个答案:

答案 0 :(得分:0)

您可以使用Spring security' SessionRegistry

下面这一行的代码片段应该这样做:

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

您应该能够自动装配SessionRegistry,然后按照上述说明使用它。

如果您已经知道用户的sessionId,那么以下代码也可以正常运行:

sessionRegistry.removeSessionInformation(sessiondId);