Как установить переменную сеанса (int для идентификатора пользователя) после того, как человек входит в систему, используя j_security_check в сервлете Java? - PullRequest
1 голос
/ 23 ноября 2010

Я хочу сохранить идентификатор пользователя в переменной сеанса для использования в приложении.Я не понимаю, как бы я сделал это с функцией безопасности по умолчанию?Он аутентифицирует себя, и я не знаю (если) есть функция обратного вызова или что-то?Что мы можем использовать для ведения домашнего хозяйства

Любая помощь очень ценится

1 Ответ

1 голос
/ 23 ноября 2010

Для этого можно использовать Filter, который проверяет, вошел ли пользователь в систему с помощью безопасности, управляемой контейнером (т. Е. HttpServletRequest#getUserPrincipal() не возвращает null)затем устанавливает переменную сеанса, если она отсутствует.

В основном:

if (request.getUserPrincipal() != null && session.getAttribute("user") == null) {
    session.setAttribute("userId", userId);
}

Однако, возможно, вам вообще не нужно это делать, поскольку это доказывает, что вы не знаете о HttpServletRequest#getUserPrincipal().Он может уже предлагать именно ту информацию, которая вам нужна.Имя пользователя для входа (может совпадать с идентификатором пользователя, о котором вы говорите) доступно по номеру Principal#getName().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...