1

当社のWebサーバーは、シングルサインオンにCASを使用しています。CASサーバーはhttps://portal.ourdomain.comでJASIGCASサーバーを実行しており、Webサーバーはhttp://service.ourdomain.comでRailsを実行しています。

Railsサーバーでは、シングルサインアウトのバックアップ手段として、およびその他の理由で、セッションタイムアウトがかなり低く設定されています。そのため、ユーザーは再認証のためにportal.ourdomain.comにリダイレクトされることがあります。CASセッションの有効期限が切れていない限り、portal.ourdomain.comは更新されたチケットCookieを使用してすぐにservice.ourdomain.comにリダイレクトするため、通常、これはシームレスです。

ただし、これはAJAXでは機能しません。ドメインが同じであっても、WebブラウザーはXHR要求のリダイレクトに従いません。

明らかな解決策の1つは、https://ourdomain.comからすべてを提供し、サブドメインのナンセンスで停止することです。これは大規模な操作であり、httpsを介してすべてを提供する必要があります。

もう1つの解決策は、サーバーがタイムアウトしないように定期的にサーバーにpingを実行することです。サーバーの負荷が増加することに加えて、タイムアウトしないページがあると、そもそもタイムアウトするという目的が無効になります。

これは、3番目のくだらない解決策につながります。タイムアウトを削除するだけです。

CASで保護されたリソースへのAjax呼び出しのクロスドメインの問題を克服する方法は?は答えられていない同様の質問ですが、その質問はより広いように見えるので、私たちの質問に対する答えがあることを願っています。

誰かがこの問題の解決策を持っていますか?

4

1 に答える 1

0

ブラウザがリダイレクトを理解できるように、再検証を行うときに ajax xhr リクエストのみをラップできます。これには、cas プロキシのコードを変更する必要があります。この「回避策は、すべての種類の ajax Web フレームワークに対して (最悪の場合) 確認し、拡張する必要があります。私たちは jquery に対してこれを行いました。jquery は喜んで rails3 の ajax ベースです。

于 2012-04-14T20:30:28.933 に答える