JSF向webbrowser发送重定向。但由于一些奇怪的原因,浏览器对重定向没有反应。 我已经能够确定何时发生这种情况,但不知道为什么会发生这种情况。
系统在Primefaces 4.0,Glassfish 3.1.2.2,JSF 2.1.11中编码。
创建问题的收据是: 1.)进行会话超时(出于测试目的,将其设置为2分钟)。 2.)登录模块。 3.)等待会话超时到期。 4.)按下注销按钮。
5.。)logout按钮将向登录/注销模块发送一个事件。哪个会联系IDP(SingleSignOn / SingleSignOut提供商)。 将收回用户无效的响应。登录/注销模块将使用重定向URL响应用户。 webbrowser将获得响应。但什么也不做。 可以使用浏览器中的F12按钮(Chrome)查看此信息。 如果我将该响应URL并将其粘贴到另一个浏览器/选项卡中。浏览器会将用户发送到正确的位置。在这种情况下, 到IDP:s inlogging模块。
这对我来说有点让人困惑。 如果我打开一个干净的新浏览器。没有会话活动。我把URL带到" secure"页面,并将其输入到URL行。按Enter键,然后按 我可以看到浏览器将尝试访问该页面。但随后authorizationFilter将获取请求/响应。 将用户标识为未登录用户。然后将用户(response.redirect)发送到inlogging模块。 这是正确的行为。
当谈到上述问题时。我可以在每个日志和浏览器开发窗口中看到。发生同样的事情 当会话超时。 我能看到的唯一区别是用户浏览器没有重定向到loginmodule。
从用户的角度来看,退出按钮似乎已经死了。
这是一个扭曲的问题。在该页面上,有一个下载文件的按钮。如果用户按下该按钮。该文件将被下载。 文件下载完成后。注销按钮将用户重定向到右页没有问题。
所以这是关于同一主题的另一个问题。为什么?这似乎是系统"刷新"它是自我,并再次变得活跃。
不同模块概述:
Loginmodule:将用户重定向到LoginModule,如果用户有权登录,则获得回复。即IDP将SAML发送到loginmodule。 IDP:身份提供者。 GUI模块:用户尝试访问的模块。 Primefaces 4.0,JSF 2.1.11 GUI模块具有AuthorizationFilter,其检查以便用户被授权和认证(获得有效的未被篡改的SAML)在GUI模块上。
我会非常高兴任何可能导致我可以解决这个问题的提示建议。或者甚至更好,一个明确的指示如何解决它。