2011-01-27 4 views
2

私は、Webアプリケーションとフレームワークjsf、休止状態と春を使用して作業しています。セッションjsfでのログアウトの問題

アプリケーションにはさまざまな種類のユーザーが存在します。ユーザーの種類によっては、私はさまざまなユーザータイプのメニューでリンクを有効にしています。

ユーザがログインすると、メニューバーのログアウトリンクが提供されます。 私はlogout.jspページを作成しました。

<% session.invalidate(); response.sendRedirect(response.encodeRedirectURL( "../ login/login.jsf")); %>

ログアウトしたユーザーが特定の種類のユーザーに表示する必要があるページを表示できるようになっても、

助けてください。

答えて

4

ページは、明らかにブラウザのキャッシュから要求されています。

*.jsfような動的ページをカバーurl-patternにマッピングされ、doFilter()方法で次のないjavax.servlet.Filterを追加することによってそれを無効にします。コール

session.invalidate(); 

HttpServletResponse httpResponse = (HttpServletResponse) response; 
httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. 
httpResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0. 
httpResponse.setDateHeader("Expires", 0); // Proxies. 
chain.doFilter(request, response); 
0

request.logout();. 

メソッドのログアウトを追加getUserPrincipal、はgetRemoteUser、およびgetAuthTypeは、リクエストに応じて呼び出されたときに値が返されるnullを確立します。