Вообще говоря (поскольку это вообще не проблема Java, а общая проблема в сети), фиксация сеанса возникает, когда идентификаторы сеансов легко обнаружить или угадать. Основной метод атаки - это когда идентификатор сеанса находится в URL-адресе страницы, например http://example.com/index?sessionId=123.. Злоумышленник может настроить захват сеанса, а затем встроить ссылку на свою страницу, обманом заставив пользователя посетить его и стать часть их сессии. Затем, когда пользователь аутентифицирует, сеанс аутентифицируется. Для этого следует не использовать идентификаторы сеансов на основе URL, а вместо этого использовать файлы cookie
Некоторые веб-приложения будут использовать сеанс cookie, основанный на исходном URL-адресе, например, при посещении http://example.com/index?sessionId=123 будет отображаться идентификатор сеанса в URL-адресе, а затем создается из него файл cookie сеанса, который устанавливается в файл cookie сеанса для 123. Снижение для этого заключается в создании случайных идентификаторов сеансов на сервере без использования какого-либо пользовательского ввода в качестве начального числа для генератора.
Существуют также эксплойты на основе браузера, в которых плохо закодированный браузер будет принимать файлы cookie для доменов, которые не являются исходным доменом, но с этим ничего не поделаешь. И межсайтовый скриптинг атакует, где вы можете отправить команду сценария на атакованный сайт, чтобы установить cookie сеанса, который может быть уменьшен, если для cookie сеанса установлено значение HTTP_ONLY (хотя Safari не учитывает этот флаг)
Для Java общая рекомендация:
session.invalidate();
session=request.getSession(true);
Однако в какой-то момент в JBoss это не сработало - поэтому вам нужно проверить, как это работает, в рамках выбранной вами платформы.