0

Orbeon 3.9 を別の展開 (クロス コンテキスト) で使用しています。アプリケーション セキュリティは OpenSSO を使用し、サーバーは Glassfish です。

注: Orbeon の送信 (バックリクエスト) は、OpenSSO ではなく、localhost からのみアクセス可能なコンテキストを持つ別の Web アプリケーションで処理されます。

セッション タイムアウトの期限が切れた後 (ブラウザでフォームを開いたままにしておくと、タイムアウトになるまで時間がかかります)、Orbeon は最初の「クリック」の直後に「読み込み中...」ループに陥ります。

Firebugが言うように:

1) /application-context/orbeon/xforms-server に対する Orbeon ajax POST 要求

2) OpenSSO は 302 Moved Temporarily でこのリクエストを停止します

3) ajax は /opensso/cdcservlet を GET 要求していますか?...

4) 200 が返されました。おそらくログイン ページの内容です。

5) 応答は無視されました。1) に移動します。

果てしなく。

私はこれを試しました: http://wiki.orbeon.com/forms/how-to/other/redirect-users-error

しかし、ダイアログが表示されないため、役に立ちませんでした。

ブラウザをそのログイン ページにリダイレクトする必要があります。

助言がありますか?

4

1 に答える 1

0

Orbeon Forms のクライアント側コードにサーバーからの応答をエラーとして認識させるには、サーバーの HTTP 応答の本文に次のようなドキュメントを含める必要があります。

<error>
    <title>...</title>
    <body>...</body>
</error>

そのようなドキュメントが存在しない場合、クライアント側のコードは遅延後にリクエストを再試行し、その間に「読み込み中…」と表示します。したがって、あなたの場合、リクエストがAjaxリクエストからリダイレクトされた場合、ログインページがそのドキュメントで応答する方法を見つける必要があります。

現在、Orbeon Forms はこの点で改善されるべきであり、Ajax リクエストへの 302 応答は、デフォルトで、またはこの動作を構成できるように、エラーと見なす必要があると思います。このため、問題 #560をオープンしました。

于 2012-11-08T18:26:27.130 に答える