Мне нужно сделать некоторые пользовательские действия, когда пользователь пытается войти в систему в зависимости от своего имени пользователя, но эти вещи должны произойти до процесса аутентификации. Вот что у меня так далеко.
Наша система позволяет использовать несколько адресов электронной почты, и клиент хочет, чтобы пользователь имел возможность аутентификации, используя любой из них. Чтобы учесть это, я создал пользовательский UserDetailsService и соответствующим образом выполнял поиск кода пользователем.
Другие вещи, которые мне нужно сделать, требуют нескольких флагов на объекте пользователя, которые Spring-Security на самом деле не знает или не заботится. Но мне нужно подключиться к процессу аутентификации, проверить эти флаги и вернуть соответствующие сообщения об ошибках пользователю. Чтобы привести более конкретный пример, мне нужно знать, впервые ли пользователь заходит в систему. Таким образом, у нас есть флаг для отслеживания этого пользователя. Когда пользователь пытается аутентифицироваться, мне нужно прочитать это значение и выполнить некоторые действия, включая отправку сообщения обратно пользователю и остановку аутентификации.
Я изучил механизмы прослушивателя событий в документации, но я не вижу, как это сделать, как внедрить свой собственный рабочий процесс через слушателей. Мне нужно сделать поток, как это:
Авторизация с действительным адресом электронной почты, но в первый раз -> отменить аутентификацию -> отобразить сообщение на странице входа в систему
Я думаю, что если я справлюсь с одним сценарием, я смогу выяснить другие, которые мне нужны.
ОБНОВЛЕНИЕ: я сейчас читаю на фильтрах, чтобы посмотреть, пропустил ли я что-то ...