Для этого можно использовать Filter
, который проверяет, вошел ли пользователь в систему с помощью безопасности, управляемой контейнером (т. Е. HttpServletRequest#getUserPrincipal()
не возвращает null
)затем устанавливает переменную сеанса, если она отсутствует.
В основном:
if (request.getUserPrincipal() != null && session.getAttribute("user") == null) {
session.setAttribute("userId", userId);
}
Однако, возможно, вам вообще не нужно это делать, поскольку это доказывает, что вы не знаете о HttpServletRequest#getUserPrincipal()
.Он может уже предлагать именно ту информацию, которая вам нужна.Имя пользователя для входа (может совпадать с идентификатором пользователя, о котором вы говорите) доступно по номеру Principal#getName()
.