JSFViewState ID session scoped?



我们在weblogic 10.3.7中部署了JSF2.1.7,我们有默认的服务器state_saving_method

我们的安全可以成功执行以下测试。

Session 1 
   1)  Access the login page 
   2) Post the login request with successful login.
   3) record the login form values along with ViewStateId.
Session 2
   1) Access the login page
   2) Post the login request with form values including view state id from session 1.
   3) successful login  (but expected view expired as it is different session).

视图状态 ID 只能在一个会话中使用,但使用服务器状态保存方法证明不正确。

但是不是针对服务器中的会话ID存储的视图状态吗?,我们的设置中缺少任何内容吗?

谢谢

我会说这是按设计工作的。javax.faces.ViewState(在状态保存模式下SERVER)对象旨在保留会话中正在查看的页面的状况,并使用viewStateId作为键来映射到服务器端的对象。根据 JSF 实现,每个会话可以保存固定数量的视图状态对象。如果客户端尝试回发的viewStateId无法与StateManager中的密钥匹配或无法在给定会话的任何位置找到,JSF 将假定该密钥可能在某个时间点存在并且只是过期,因此ViewStateExpiredException

最新更新