gpt4 book ai didi

java - Spring Security 删除用户 - session 仍然有效

转载 作者:行者123 更新时间:2023-11-30 10:42:00 25 4
gpt4 key购买 nike

我有一个简单的带有用户管理的 spring 安全应用程序。管理员应该能够在数据库上创建/更新/删除用户(通过 hibernate )。

如果更新了用户,我将重新加载当前登录用户的身份验证。这是通过以下代码完成的(根据 this 示例):

SecurityContextHolder.getContext().setAuthentication(updatedAuthentication);

我的问题是:如果用户被删除我该怎么办?如果我删除一个用户,已经活跃的 session 保持活跃并且我不知道如何更新它们。我仍然可以导航到之前能够访问的每个页面。

有没有办法告诉 spring 应该重新验证 session 或类似的东西?我错过了什么重要的事情吗?

最佳答案

在每个请求中,您应该检查您的数据库中的用户是否存在。步骤:

  1. 从 session 中获取用户 ID,检查它是否在数据库中。
  2. 如果不在数据库中,则使 session 无效并再次重定向到登录页面。
  3. 将上述两个步骤包装在一个方法中,并在每次请求时调用它。 (如果有通用方法,请使用该方法或创建 e Listener)

如果有帮助,您也可以查看以下链接。 http://forum.spring.io/forum/spring-projects/security/35809-how-to-let-admin-to-force-user-to-logout

另一个有用的链接是 http://docs.spring.io/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#list-authenticated-principals

关于java - Spring Security 删除用户 - session 仍然有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38295556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com