Я пытаюсь сохранить сеанс пользователя в хэш-карте на каждом кластере. и когда мне нужно сделать его недействительным, я возьму указанный идентификатор сессии. и сделать его недействительным, если сеанс создан обычным способом, чтобы сделать сеанс недействительным.
public class SessionListener implements HttpSessionListener {
public HashMap<String, HttpSession> sessionHolder = new HashMap<String, HttpSession>();
@Override
public void sessionCreated(HttpSessionEvent se) {
sessionHolder.put(se.getSession().getId(), se.getSession());
}
public void invalidate(String sessionId){
if(this.sessionHolder.get(sessionId)!= null){
System.out.println("Invalidate session ID : " + sessionId);
HttpSession session = sessionHolder.get(sessionId);
session.invalidate();
} else {
System.out.println("Session is not created in this cluster ID : " + sessionId);
}
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("Session " + se.getSession().getId() + " has been destoryed");
sessionHolder.remove(se.getSession().getId());
}
}
сеанс погибнет, если произойдет недействительное. но на другом кластере сеанс все еще доступен.
почему сеанс на другом кластере еще. и как также сделать недействительным сеанс на другом кластере.
спасибо.