После того, как новый пользователь отправит форму "Новая учетная запись", я хочу вручную зарегистрировать этого пользователя, чтобы он не мог войти на следующую страницу.
Страница входа в обычную форму, проходящую через перехватчик безопасности spring, работает нормально.
В контроллере new-account-form я создаю UserPasswordAuthenticationToken и вручную устанавливаю его в SecurityContext:
SecurityContextHolder.getContext().setAuthentication(authentication);
На той же странице я позже проверю, что пользователь вошел в систему с помощью:
SecurityContextHolder.getContext().getAuthentication().getAuthorities();
Это возвращает полномочия, которые я установил ранее при аутентификации. Все хорошо.
Но когда этот же код вызывается на самой следующей странице, которую я загружаю, токен аутентификации - это просто UserAnonymous.
Я не понимаю, почему он не сохранил аутентификацию, установленную в предыдущем запросе. Любые мысли?
- Может ли это сделать, если идентификатор сеанса не настроен правильно?
- Есть ли что-то, что может как-то переписать мою аутентификацию?
- Возможно, мне нужен еще один шаг, чтобы сохранить аутентификацию?
- Или есть что-то, что мне нужно сделать, чтобы объявить аутентификацию на протяжении всего сеанса, а не на какой-либо запрос?
Просто найдите некоторые мысли, которые могут помочь мне увидеть, что происходит здесь.