我有一个不受j_security_check保护的JSF页面。 我执行以下步骤: 在浏览器中打开JSF页面。 重新启动服务器。 单击JSF页面上的命令button以启动ajax调用。 如预期的那样,Firebug显示引发了一个ViewExpiredException 。 post: javax.faces.ViewState=8887124636062606698:-1513851009188353364 响应: <partial-response> <error> <error-name>class javax.faces.application.ViewExpiredException</error-name> <error-message>viewId:/viewer.xhtml – View /viewer.xhtml could not be restored.</error-message> </error> </partial-response> 但是,一旦我configuration页面被j_security_check保护并执行上面列出的相同步骤,奇怪(对我来说) ViewExpiredException不再被引发。 相反,响应只是一个新的视图状态。 post: javax.faces.ViewState=-4873187770744721574:8069938124611303615 响应: <partial-response> <changes> <update id="javax.faces.ViewState">234065619769382809:-4498953143834600826</update> </changes> </partial-response> 有人可以帮我解决这个问题吗? 我期望它会引发一个exception,所以我可以处理这个exception并显示一个错误页面。 现在,它只是响应一个新的ViewState,我的网页刚刚卡住,没有任何视觉反馈。
我想知道当前使用JSF 2.0(以及是否存在任何组件)和Java EE 6核心机制(login/检查权限/注销)的Web应用程序的用户身份validation的当前方法,其中包含用户信息保存在JPA实体。 Oracle Java EE教程有点稀疏(只处理servlet)。 这并没有使用像Spring-Security(acegi)或Seam这样的其他框架,但是如果可能的话,尽量使用新的Java EE 6平台(web profile)。