Я унаследовал довольно древнее приложение 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, но просмотр документации по конфигурации ничего не дал.