Как вручную установить аутентифицированного пользователя в Spring Security/SpringMVCJAVA

Программисты JAVA общаются здесь
Anonymous
Как вручную установить аутентифицированного пользователя в Spring Security/SpringMVC

Сообщение Anonymous »

После того, как новый пользователь отправит форму «Новая учетная запись», я хочу вручную войти в систему этого пользователя, чтобы ему не приходилось входить в систему на следующей странице.

Обычная страница входа в форму, проходящая через перехватчик безопасности Spring, работает нормально.

В контроллере новой формы учетной записи я создаю UsernamePasswordAuthenticationToken и устанавливаю его в SecurityContext вручную:

Код: Выделить всё

SecurityContextHolder.getContext().setAuthentication(authentication);
На этой же странице я позже проверяю, вошел ли пользователь в систему:

Код: Выделить всё

SecurityContextHolder.getContext().getAuthentication().getAuthorities();
Это возвращает полномочия, которые я установил ранее при аутентификации. Все хорошо.

Но когда тот же код вызывается на следующей загружаемой странице, токен аутентификации является просто UserAnonymous.
Непонятно, почему не сохранилась аутентификация, которую я установил в предыдущем запросе. Есть мысли?
  • Может ли это быть связано с неправильной настройкой идентификатора сеанса?
  • Есть ли что-то, что каким-то образом перезаписывает мою аутентификацию?
  • Возможно, мне просто нужно еще один шаг, чтобы сохранить аутентификацию?
  • Или мне что-то нужно сделать, чтобы каким-то образом объявить аутентификацию для всего сеанса, а не для одного запроса?
Просто ищу некоторые мысли, которые могут помочь мне увидеть что здесь происходит.

Подробнее здесь: https://stackoverflow.com/questions/466 ... -springmvc

Вернуться в «JAVA»