2017-03-05 295 views
0

私のアプリケーションではspring mvcでangularjsを使用しています。ログインボタンと複数のタブがあるシングルページアプリケーションです。ユーザーがログインすると、タブは表示されます(ログインボタンは表示されません)。ユーザーは任意のタブで機能をナビゲートして使用できます。これらすべてのアクションのURLは同じです(例:www.xyz.com/context/)。Spring MVC AngularJSページリフレッシュ/リダイレクト

私はここでセッション管理に問題があります。ユーザーがこれらのタブのいずれかにいるときにセッションが終了する場合は、タブ番号と言います。 3、ログインボタンが表示され、タブが表示されない初期状態にページをリセットする必要があります。セッションの有効期限に以下の

<security:session-management invalid-session-url="/invalidSession"> 
    <security:concurrency-control expired-url="/" /> 
</security:session-management> 

Iが設定されているスプリングセッション管理は、私はSpring MVCのコントローラがそれを処理するように構成されています。下のような

@RequestMapping(value="/invalidSession", method = RequestMethod.GET) 
public ModelAndView invalidSession() { 
    ModelAndView model = new ModelAndView("redirect:/"); 
    model.setStatus(HttpStatus.); 
    return model; 
} 

このメソッドはセッションの終了時に呼び出されますが、リダイレクトはページをログインボタンのみが表示される初期状態にリセットしません。むしろ、それはタブnoの同じ状態に留まります。 3と他のすべてのタブは引き続き表示されます。私がブラウザのリフレッシュボタンを押すと、正常に動作します。

上記コントローラメソッドでmodel.setStatus(HttpStatus.RESET_CONTENT);を試してみましたが、まだ動作しません。

私はSpring security and angular javascript redirect to login pageの質問をしましたが、私の要件では少し複雑で、私の要件は非常に簡単です。私はそれが私のページをリセットする適切なリダイレクトで春のセッション管理を通してそれを扱うことができるはずだと思います。

どうすればこの問題を解決できますか?

+0

セッションの有効期限が切れても、同じページにはどうなりますか?またはtab3に?あなたはあなたのhtmlコードを共有できますか? –

+0

それはタブ3にとどまります。私の要求に合った代替ソリューションが見つかりました。私は以下に投稿しました。 – Maz

答えて

0

私は角度を取ってアプローチしました。私はAngular session timeout and managementに概説されているように、ng-idleコンポーネントを使用しました。

また、ng-idleが自分の要件を解決するため、春のセッション管理タグを削除しました。

関連する問題