Если вы используете ZK и ZK Spring Security, это прозрачно для вас.
Механизм прост. После входа конечного пользователя создается новый сеанс, и все атрибуты старого сеанса копируются в новый (для сохранения состояния). Тогда старый сеанс становится недействительным, и с тех пор конечный пользователь работает с новым сеансом. Поскольку старый номер сессии «плохой парень» уже аннулировал, у «плохой покупки» не было возможности захватить сессию.