Servlet 3.0のプログラムによるセキュリティに関して、セッションがタイムアウトすると、HttpServletRequest#logout()
を呼び出す方法がありません。Servlet 3.0プログラムによるセキュリティを使用する場合のセッションタイムアウトの処理方法
ユーザはJAASにログインしたままですか?
もしそうなら、セッションタイムアウト後にJAASからのログアウトを処理するベストプラクティスは何ですか?
コンテナは、セッションのタイムアウト後に再度ログインして新しいセッションを作成するという、その後のユーザーの要求をどのように処理しますか?
さておき、サーブレット3.0プログラムによるセキュリティを使用したときに、セッションのタイムアウトを処理するために、以下の3つのアプローチ使用しての長所と短所どのようなものとして:
HttpSessionListener#sessionDestroyed()
- は
@ManagedBean @SessionScoped LoginManager
がHttpSessionBindingListener
を実装し、中に何かを作りますvalueUnbound
。 - LoginManagerの@PreDestroyメソッドに注釈を付けます。
他に提案されているアプローチやベストプラクティスのアドバイスは、必ずお読みください。
「Core Java Server Faces」p。 525は、「現在、コンテナ管理のセキュリティを使用しているときにログオフまたはアイデンティティを切り替えるための仕様がない」ことを示しています。 –
また、無効化されたセッションは正式なログアウトの代用としては不十分であると訴えているが、J2EEセキュリティに関するブログの噂がいくつか出てきているが、プログラム的にログアウトする方法を提供するServlet 3.0より前に書かれたブログは古い。 –
CJSFのエディションは、Servlet 3.0よりも前のバージョンであることは明らかです。 – EJP