私は自分のアクションでSessionMap (org.apache.struts2.dispatcher.SessionMap<K,V>)
セッションを追跡するために a を使用しています。invalidate()
ログアウトには、SessionMap が提供するメソッドも使用します。
Tomcat が提供する webapp "manager" を使用して、サーバーのセッションを監視できます。webapp からログアウトするときは、メソッドを呼び出しますinvalidate()
。
しかし、このメソッドを呼び出した後、セッションは期限切れになりません!
Invalidate()
メソッドは、セッションに保存されたオブジェクトのみを削除します (たとえば、login()
セッションが存在する後に作成されたユーザー オブジェクト)。
私の説明が明確であることを願っていますが、どうすればこの問題を解決できますか? 前もって感謝します
私のコード:
public String execute(){
User user = authenticateUser( getUsername(), getPassword() );
if ( user == null )
{
/* User not valid, return to input page. */
return INPUT;
}
else{
session.put( "user", user );
}
return SUCCESS;
}
そして、次のようにセッションを無効にします。
public String logout(){
session.invalidate();
System.out.println("LOGOUT");
return "logout";
}
セッションは次のとおりです。
private SessionMap<String, Object> session;