Ответ 1
API Servlet 3.0 не позволяет вам изменять идентификатор сеанса в существующем сеансе. Как правило, для защиты от фиксации сеанса вам нужно просто создать новый и аннулировать старый.
Вы можете аннулировать сеанс, подобный этому
request.getSession(false).invalidate();
а затем создайте новый сеанс с
getSession(true)
(getSession()
тоже должен работать)
Очевидно, что если у вас есть данные в сеансе, которые вы хотите сохранить, вам нужно будет скопировать его с первого сеанса на второй сеанс.
Обратите внимание, что для защиты фиксации сеанса обычно считается, что нужно просто сделать это в запросе аутентификации. Но более высокий уровень безопасности связан с переходом старой сессии и созданием нового сеанса для каждого запроса.