gpt4 book ai didi

java - 如何在 AuthenticationSuccessHandler 中检索 session 范围的 bean?

转载 作者:搜寻专家 更新时间:2023-11-01 02:16:30 25 4
gpt4 key购买 nike

我有一个自定义的 AuthenticationSuccessHandler。

我想做的是在 onAuthenticationSuccess 方法中设置一些 session 数据。

为了存储 session 数据,我想使用 session 范围的 bean,它在任何 Controller 中都能正常工作。

但是如果我尝试在 onAuthenticationSuccess 方法中检索它,我会得到一个异常:

Error creating bean with name 'scopedTarget.sessionData': Scope 'session' is not active for the current thread;

我的代码是:

WebApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
SessionData sessionData = context.getBean(SessionData.class);

有什么想法吗?

最佳答案

您可以尝试声明一个公开实现 session 范围所需状态的监听器:

<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>

默认情况下,该状态由 DispatcherServlet 公开,因此在请求进入 DispatcherServlet 之前它不可用(例如在 Spring Security 过滤器中)。

关于java - 如何在 AuthenticationSuccessHandler 中检索 session 范围的 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5420161/

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