我们在单独部署中使用Orbeon 3.9(交叉上下文),应用程序安全性与OpenSSO,服务器是glassfish。
注意:Orbeon提交(backrequests)是由另一个Web应用程序处理的,其上下文只能从localhost访问,而不能在OpenSSO下访问。
会话超时到期后(浏览器中的左侧打开表单足够超时)是Orbeon在第一次“点击”后立即停留在“正在加载...”循环。
正如Firebug所说:
1)Orbeon ajax POST请求/ application-context / orbeon / xforms-server
2)OpenSSO使用302 Moved Temporarily
停止此请求3)ajax是GET-reques / opensso / cdcservlet?...
4)返回200,可能是登录页面内容
5)忽略了回应,转到1)
无截止。
我试过这个:http://wiki.orbeon.com/forms/how-to/other/redirect-users-error
但没有帮助,因为没有显示对话框。
我们需要将浏览器重定向到该登录页面。
有什么建议吗?
答案 0 :(得分:0)
编写代码的方式,如果您希望Orbeon Forms客户端代码将服务器的答案识别为错误,服务器还需要在HTTP响应的正文中包含如下文档: / p>
<error>
<title>...</title>
<body>...</body>
</error>
如果此类文档不存在,则客户端代码将在延迟后重试请求,并在此期间显示“正在加载...”。因此,在您的情况下,如果请求是从Ajax请求重定向的,您需要找到一种方法来使登录页面回答该文档。
现在,我也认为应该在这方面改进Orbeon Forms,并且应该将Ajax请求的302回答视为错误,默认情况下,或者允许您配置此行为。出于这个原因,我打开了issue #560。