Поскольку вы используете Spring, придерживайтесь Spring, не взламывайте его самостоятельно, как другие посты.
Руководство Spring гласит:
Вы не должны напрямую взаимодействовать с HttpSession для безопасности
цели. Для этого просто нет оправдания - всегда используйте
вместо этого SecurityContextHolder.
Рекомендуемая наилучшая практика для доступа к сеансу:
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if (principal instanceof UserDetails) {
String username = ((UserDetails)principal).getUsername();
} else {
String username = principal.toString();
}
Ключевым моментом здесь является то, что Spring и Spring Security делают для вас все что угодно, например, предотвращение фиксации сессии. Эти вещи предполагают, что вы используете среду Spring, так как она была разработана для использования. Итак, в вашем сервлете сделайте его контекстно-зависимым и получите доступ к сеансу, как в примере выше.
Если вам просто нужно спрятать некоторые данные в области видимости сеанса, попробуйте создать какой-нибудь bean-объект в области сеанса, например в этом примере , и пусть autowire сделает свое дело. :)