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