【问题标题】:Logging out a user when it has been deleted by admin user当用户被管理员用户删除时注销用户
【发布时间】:2015-06-30 03:38:03
【问题描述】:

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

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

我已经使用 Spring 安全会话管理(并发控制)在特定时刻两次阻止用户登录应用程序http://wiki.pentaho.com/display/ServerDoc2x/Concurrent+Sessions+(Preventing+Users+from+Logging+in+More+Than+Once)

但关键是当它被删除时,会话应该对该用户无效,并且它应该注销并且应该无法重新登录,因为它已被删除。

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

请告诉我有哪些可用选项?

【问题讨论】:

    标签: jquery spring-mvc spring-security


    【解决方案1】:

    您可以使用 Spring security 的 SessionRegistry

    按照下面这行的代码 sn-p 应该可以做到这一点:

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

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

    如果您已经知道用户的 sessionId,那么下面的代码也应该可以工作:

    sessionRegistry.removeSessionInformation(sessiondId);
    

    【讨论】:

      猜你喜欢
      • 2023-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 2017-11-05
      • 2017-10-06
      相关资源
      最近更新 更多