1

Spring 3.1 認証に接続されたアプリケーションがあります。ダイアログに情報を表示するために AJAX リクエストを行うページがいくつかあります。これで、ユーザーのセッションがタイムアウトした場合、Spring はログイン ページにリダイレクトされます。AJAX ベースのログイン ページは必要ありません。現在の操作をキャンセルして、ユーザーがログイン ページに完全に移動できるようにしたいと考えています。ユーザーがログインしたら、(AJAX 要求が行われた場所から) ユーザーが最後にいたページに戻ります。

リクエストがページから行われた場合、リダイレクトは正常に機能します。

4

1 に答える 1

1

ログイン ページへのリダイレクトを実行するクラスはLoginUrlAuthenticationEntryPoint. AuthenticationEntryPointAjax リクエストを (たとえば、Acceptヘッダーを見て) 検出し、リダイレクトを実行する代わりにエラー コードを送信するカスタマイズされた実装を作成します。

ただし、クライアント側でこれを検出する必要があります。そこでSpring Securityができることはあまりありませんが、Javascriptから現在のページをリロードできるはずです。これにより、ログインが強制され、その後元のページにリダイレクトされます(デフォルトのSpring Securityの動作)。

于 2012-11-21T15:28:17.127 に答える