SSO に Spring/Java と SAML 2.0 を使用する (Spring Security SAML 拡張機能を利用する) AngularJS アプリがいくつかあります。私の SSO ID プロバイダーは OpenAM で、すべてがうまく機能しています。ただし、ユーザーが 1 つのアプリケーション内からグローバル ログアウトを行ったが、他のタブが開いているという状況に陥っています。これらは単一ページの Web アプリであるため、ユーザーが ajax 要求を呼び出すために何らかの操作を行うまで、孤立したタブで多くの機能を使用できる可能性があります。もちろん、これらの AJAX リクエストは Spring Security SAML フィルターによってインターセプトされ、REDIRECT を介して OpenAM ログイン URL への認証試行をトリガーします。もちろん、AJAX 要求では別のドメインへのリダイレクトが許可されていないため、これはブラウザーに大混乱をもたらします。さらに、Angular では本当に何もできません。■ 要求が「キャンセル」され、品質情報が $http エラー コールバック関数 (便利な 401/403 ステータス コードなど) で利用できない場合の $http インターセプタ。私が知っているのは、リクエストが失敗したということだけです。
失敗には正当な理由がある可能性があるため、すべての悪い $http 要求が認証の問題によるものである (および $window.location.reload() を実行する) とは想定したくありません。私の好みは、ajax リクエストの Spring Security リダイレクト (OpenAM ログイン ページへの) を抑制し、代わりに 401/403 ステータス コードを送り返すことです。これにより、$http インターセプターでエラーを処理し、認証に失敗した場合はページ全体を読み込むことができるため、初めてサイトにアクセスしたかのようにログイン ページにエレガントにリダイレクトできます。
これを達成する方法についてのアイデアはありますか?