0

我们在 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).

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

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

谢谢

4

1 回答 1

0

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

于 2012-10-02T05:01:43.193 回答