我有一个自定义的 AuthenticationSuccessHandler。
我想要做的是在 onAuthenticationSuccess 方法中设置一些会话数据。
为了存储会话数据,我想使用会话范围的 bean,它在任何控制器中都可以正常工作。
但是如果我尝试在 onAuthenticationSuccess 方法中检索它,我会得到一个异常:
使用名称创建 bean 时出错
'scopedTarget.sessionData':范围
“会话”未处于活动状态
当前线程;
我的代码是:
WebApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
SessionData sessionData = context.getBean(SessionData.class);
有任何想法吗?
您可以尝试声明一个监听器,该监听器公开实现会话范围所需的状态:
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
默认情况下,该状态由DispatcherServlet
,所以在请求进入之前不可用DispatcherServlet
(例如在 Spring Security 过滤器中)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)