gpt4 book ai didi

java - 使用 spring security 进行 session 管理

转载 作者:行者123 更新时间:2023-11-30 08:05:41 25 4
gpt4 key购买 nike

我已经使用 UserDetailsS​​ervice 创建了一个基本的 Spring Security 身份验证,现在我可以验证用户了。但是,我不明白如何实现以下目标:

  1. 用户登录后,当下一个请求到来时,如何以及在哪里检查请求是来自同一登录用户还是其他登录用户?

我知道 Spring 拦截器的概念,我可以在其中拦截所有传入的请求。但是 spring security 中有什么东西可以做到这一点吗?

  1. 如何在登录后为该用户启动 session 并在 session 中存储值?

我浏览了现有的答案,但大多数示例都是用于登录的。

如果有人能给我举个例子,我将不胜感激。

编辑:我认为我应该使用 session 范围的 bean 来维护用户的 session 内容,而不是直接操作 httpsession。

最佳答案

我认为您确实需要花一些时间阅读 Spring 安全文档以及所有 JSP、servlet 和 MVC 架构。你有几个误解,

  1. 身份验证后,您无需启动请求到来时已经存在的 session 。请记住 request.getSession() 我们从请求中获取 session ,我真的不知道任何其他方式,即实例化 session 对象并将其分配给请求/响应。身份验证成功后,spring 会自动在 session 中设置 SPRING_SECURITY_CONTEXT 属性,此变量稍后用于确定用户是否已通过身份验证(Spring 会为您完成此操作,您不需要使用此属性)。

  2. 在 spring security 中,我们设置了一个身份验证入口点,其中包含有关登录页面 url 和 FORM_LOGIN_FILTER 的信息,其中包含有关登录处理 url、登录成功 url 和登录失败 url 等信息。每个请求的 session 都没有没有 SPRING_SECURITY_CONTEXT 和 auth 属性被重定向到登录页面 url。

我可以直接给出代码,但如果你至少阅读几页 Spring 文档就更好了 here .一旦你理解了这些概念,但仍然无法解决问题。使用详细问题编辑您的问题,我们将尝试解决它。​​

关于java - 使用 spring security 进行 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34896912/

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