有没有办法从数据库中注销特定用户或所有用户?

时间:2019-05-19 05:26:15

标签: grails spring-security grails-2.2

我正在使用带有弹簧安全性的grails 2.2。我正在使用MySQL数据库。我想知道是否有一种方法可以通过清除mysql数据库中的数据来注销用户或所有用户。

4 个答案:

答案 0 :(得分:3)

  

我想知道是否有一种方法可以注销用户或所有用户   清除mysql数据库中的数据。

没有。通常,数据库中甚至不存在表示用户是否已登录的状态。在一个简单的系统中,信息将存储在Web应用程序的内存中。在更复杂的系统中,信息可能存在于与应用程序通信的单独服务中。该信息通常不会存储在数据库中。

请注意,将凭据(如用户名,密码和角色)存储在数据库中是与跟踪谁登录无关的事情。

我希望有帮助。

答案 1 :(得分:1)

如果删除数据库中的数据,则用户将无法登录NEXT TIME。

如果当前有任何会话打开,用户将保持登录状态,并且在Spring Security中没有开箱即用的机制可以结束特定用户的会话。

答案 2 :(得分:0)

如果您安装JavaMelody(有时以grails插件的形式提供),则应该能够看到所有活动的会话,并且可以从界面中将其删除(导致所有用户注销)。 / p>

答案 3 :(得分:0)

您不能完全按照您的要求进行操作,因为数据没有像JSB所说的那样存储在应用程序数据库中。

但是,您可以从Web应用程序检查会话并使其中的一些会话无效,这将“注销”关联的用户。我根据旧的“ app-info”插件和“ scopesInfoService”编写了服务和控制器。请参见sourceblog

如果您需要快速修复并已部署到Tomcat,请尝试使用管理器webapp来使webapp的会话无效,尽管如果尚未显式添加用户名(或其他用户名)来确定要选择哪个会话,可能会很棘手。身份验证成功后,将其添加到会话“登录”属性。