提问人:Rajesh Kumar 提问时间:11/13/2023 最后编辑:Jasper de VriesRajesh Kumar 更新时间:11/15/2023 访问量:66
PrimeFaces 投票标签问题与会话超时
PrimeFaces poll tag issue with session timeout
问:
我们的应用程序建立在Spring Boot上,前端是使用PrimeFaces 6.2构建的。最近,我们被要求检查会话是否处于活动状态。也就是说,每 40 分钟从客户端,我们需要进行一次后备 Bean 调用。这将调用另一个 API 来检查会话是否存在。
在现有实现中,我们使用 idleMonitor 来识别客户端的空闲时间,并在会话达到 30 分钟时使会话失效。然后用户将被重定向到登录页面
<p:idleMonitor timeout="#{appSesionBean.maxIdleTimeOut}"
onidle="PF('timeOut').show();AppUI.showCountDownTimer();"/>
<p:poll interval="#{appSesionBean.getSessionRefreshInterval()}"
listener="#{appSesionBean.refreshSession()}"/>
根据新的要求,我添加了配置为 40 分钟的投票标签,以检查会话是否处于活动状态。
我现在面临的问题是,投票标签会话永远不会失效。我在 40-45 分钟后刷新页面,会话仍处于活动状态,用户未被重定向到登录页面。
由于我是这个PrimeFaces民意调查和idleMonitor的新手,我想知道这两者是否不能放在同一个表格中?
- 如果使用idleMonitor有问题,你能帮我吗 和民意调查标签?
- 有没有其他方法可以定期实现 从客户端调用后备 Bean?
- 轮询标签可以防止会话失效吗?
答:
2赞
Melloware
11/14/2023
#1
正如@tandraschko所指出的,每个 AJAX 调用都会触及来自 JSF 的会话,从而刷新您的会话。
但是,如果您想跟踪它,PrimeFaces Extensions 在 12.0.4+ 版本中添加了这个巧妙的会话组件: https://www.primefaces.org/showcase-ext/sections/session/basic.jsf
它根据用户当前会话超时在客户端倒计时,并知道如何在进行 AJAX 调用时重置。
评论
1赞
BalusC
11/16/2023
pe:session 是否适用于所有浏览器选项卡?例如,当您打开 2 个浏览器选项卡时,第一个选项卡的空闲时间超过会话超时,但您在第二个选项卡中仍然很忙。
0赞
Melloware
11/16/2023
@BalusC我不认为它有多标签感知,但让我问问原来的开发人员。
0赞
Melloware
11/16/2023
确认“没有。不同选项卡上的计时器不同步。
0赞
Melloware
11/19/2023
@BalusC我刚刚添加了对 Session 的支持,使其具有多窗口感知能力!谢谢你的建议
评论