"Session expired"不在检票口工作



当我的wicket应用程序的用户丢失他们的会话(例如会话过期)、他们看到的页面上的链接和表单提交时,只需向用户显示起始页。相反,如果不能显示正确的结果,我希望Wicket显示其"会话已过期"错误消息。

例如,起始页显示一些数据。在搜索字段中输入查询,然后单击提交按钮。您可能希望看到过滤后的结果或错误(会话已过期),但Wicket只是默默地创建一个新会话并显示起始页,这是没有过滤器的结果。这看起来像一个bug("过滤器不工作!")。

例如,如果您转到页面https://login.firstbird.eu/,然后删除JSESSIONID cookie,然后单击"忘记您的密码"链接,然后您会期望显示"忘记密码"页面,但会再次显示起始页面。(我知道这可以通过可添加书签的链接来解决,但还有其他依赖于会话和页面信息的情况无法通过可添加标签的链接解决。)

日志中没有序列化错误,但我认为这无论如何都无关紧要。无论会话和页面是否可序列化,会话仍会有过期的时间(例如超时)。

我想我第一次注意到这个功能是在Wicket 1.5中;我很确定这在Wicket 1.4中有效。

在我看来,这就像是Wicket的一只虫子。我错了吗?我是不是误解了威克在这里的意图?还是我做错了什么?

有一个设置是显示PageExpiredPage还是重新创建当前页面:https://github.com/apache/wicket/blob/2de1284a589f7862133bb2c2166bf8563268d252/wicket-core/src/main/java/org/apache/wicket/settings/IPageSettings.java#L67-L77

大多数人更喜欢展示新的例子,而不是失去上下文并找到回去的路。这就是为什么这是默认的。

最新更新