【发布时间】:2014-12-18 13:49:15
【问题描述】:
我们有一个带有 Primefaces 4.0 和 CAS 单点登录的 JSF webapp。
当用户在失去会话后请求 ajax 操作(通过单击 p:commandButton 或具有 ajax=true 的类似组件)时,因为 SSOut 在另一个选项卡中,没有任何反应,服务器或操作不会触发任何响应。 我们需要管理这种情况,通过显示对话框或将他重定向到主页或自定义页面来通知用户他的会话不再可用,但我们不知道如何。
ajax=false 解决了问题,但这不是我们想要做的。
没有抛出 ViewExpiredException。
编辑: 我们已经阅读并尝试了this BalusC's solution,但没有成功。不抛出异常,与 Handler 无关。请注意,这不是 Expired Session 或 Invalidated by TimeOut session,只是一个显式 session.invalidate 由 Cas Sign Out 在另一个选项卡中引起。
我们还尝试了 javascript jsf.ajax.addOnError() 解决方案,但再次没有捕获任何内容。 只有 p:ajaxStatus onError 事件会捕获某些内容,但无法识别该特定错误。即使覆盖 ajaxStatus javascript 函数,错误数据参数也未定义... 此外,p:log 表示“请求返回错误:错误”。但是,这是哪个错误?我们如何识别它? 我们被困在这个问题上......
【问题讨论】:
标签: ajax jsf session primefaces cas