Как я могу аннулировать сеанс http с помощью идентификатора сеанса - PullRequest
0 голосов
/ 22 марта 2019

Я вошел в систему с другой учетной записью пользователя, но у меня есть hashmap с созданными в нем идентификаторами http-сессий, и мне нужно аннулировать http-сессию с помощью sessionid.

Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Не существует стандартного способа удалить сеанс, только зная идентификатор сеанса.

Может быть, вы можете обмануть сервер, отправив поддельный идентификатор сеанса (в виде cookie или http-параметра), чтобы перенять сеанс другого.и попытайтесь сделать его недействительным с помощью некоторых методов приложения (например, «logout»).

Но в tomcat нет JSP или чего-то такого, что может сделать это.

Если вы хотитесделать сессии недействительными в приложении, развернутом на этом сервере, вас может заинтересовать Как я могу загрузить Java HttpSession из JSESSIONID?

0 голосов
/ 22 марта 2019

Вы можете использовать по данному методу

session.invalidate();

ИЛИ вы можете удалить все атрибуты из сеанса и сделать недействительными

Enumeration<String> attributes = request.getSession().getAttributeNames();
while (attributes.hasMoreElements()) {
    String attribute = attributes.nextElement();
    session.removeAttribute(attribute);
}

session.invalidate();
...