Я использую в своих действиях SessionMap (org.apache.struts2.dispatcher.SessionMap<K,V>)
для отслеживания моих сессий.
Я также использую метод invalidate()
, предоставленный SessionMap для выхода из системы.
Используя «менеджер» веб-приложений, предоставленный Tomcat, я могу отслеживать сеансы на моем сервере.
Когда я хочу выйти из моего веб-приложения, я вызываю метод 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;