Повторное использование идентификатора сеанса после вызова для аннулирования

Я унаследовал довольно древнее приложение JSP (JDK 1.3.1_15) и пытаюсь закрыть дыру для фиксации сеанса.

Я успешно аннулирую текущий сеанс после аутентификации с использованием HttpSession.invalidate () , однако, когда создается новый сеанс, старый идентификатор сеанса используется повторно.

<%
// login.jsp
if (authenticated) {
    request.getSession().invalidate();

    // create new session and store data
    HttpSession session = request.getSession();
    session.putValue(...);
    // etc

    response.sendRedirect("logged-in.jsp");
    return;
}
%>

Я вижу назначение нового сеанса в моем мониторе HTTP, это просто снова использовал тот же номер.

-- Initial request response --
HTTP/1.1 200 OK
Set-Cookie: JSESSIONID=6a303082951311647336934;path=/

-- login.jsp request response --
HTTP/1.1 302 Moved Temporarily
Location: http://example.com/logged-in.jsp
Set-Cookie: JSESSIONID=6a303082951311647336934;path=/

До того, как я использовал session.invalidate () , второй заголовок ответа Set-Cookie не присутствовал вообще.

У кого-нибудь есть какие-либо советы по созданию нового идентификатора сеанса? Я не очень знаком с JRUN4, но просмотр документации по конфигурации ничего не дал.

5
задан Phil 26 July 2011 в 06:42
поделиться