2012-01-31 11 views
0

セッションが期限切れになったとき(タイムアウトまたは別のウィンドウから手動でログアウトすることによって)ユーザーがページの任意のリンクをクリックすると、自分のウェブサイトのフローをログインページにリダイレクトする必要があります。url転送グローバルリダイレクトの代わりにdivを更新する

私は、これは前に正常に動作するために使用さが、私たちは、この段階でアウトアプリケーションにいくつかの変更(Oracleの移行を行いました(すべてのGSPに含まれる)私のmain.gspで次のコード

<script> 
    $.ajaxSetup({ 
      statusCode: { 
      401: function(){ 

      // Redirect the to the login page. 
      location.href = "/gra/login/auth"; 
      } 
      } 
      }); 
    </script> 

を追加しました、新しいUI、およびスプリングセキュリティプラグイン)

これで、ページ全体がログインページに転送されていませんが、リンクのクリックによって更新されるコンテナ内のコンテンツのみがリフレッシュされます(ログアウトページはそのdivにのみあります) これは、 。 これをグローバルページにするにはどうすればよいですか?

アップデート:Firebugで確認したところ、セッションタイムアウト後にリンクをクリックすると、 は401ではなく302(一時的に移動した)コード番号を生成していますか?

+0

iframeにdivがありますか? –

+0

いいえ、そうではありません。Iramはiframeを使用していません。 –

答えて

0

これは、グレーズフィルタ(Documentation)を使用するための優れたタスクです。

以下のコードはすべてのコントローラとすべてのアクションを傍受し、beloreが呼び出され、セッションが有効であることを確認します。失敗した場合は、ログインページにリダイレクトされます。

ifステートメントの条件を変更してセッションを適切にチェックする必要があります。

class SecurityFilters { 
    def filters = { 
     sessionCheck(controller: '*', action: '*') { 
      before = { 
       if (!session && !actionName.equals('login')) { 
        redirect(uri: '/gra/login/auth') 
        return false 
       } 
      } 
     } 
    } 
} 
関連する問題