Я работал с теми же технологиями в прошлом (только не с SpringSecurity), и я сделал похожую вещь, я думаю, что могу дать вам представление о том, как вы могли бы это сделать. Я думаю, что это будет работать:
1
Чтобы подсчитать имя успешного входа, вам понадобится переменная в сущности.
Эта переменная должна увеличиться на единицу при успешном входе пользователя в систему. Я думаю, что лучшее время для увеличения этого значения - это если проверка правильна и доступ предоставлен (это можно реализовать в методе проверки).
Таким образом, вы получаете текущее значение переменной для этого пользователя с помощью языка запросов Hibernate, добавляете 1, а затем обновляете строку.
2
Для этого я не уверен в 100%, но вы можете попробовать это:
Переменная в таблице User с именем loginTime должна существовать как @ ApplicationState.
Затем в функции выхода из системы вы создадите переменную tempVariable, которая будет содержать время (длинную переменную) в это текущее время.
Вы будете выполнять подчиненную операцию (logOutTime - logInTime), и вы получите время в миллисекундах, затраченное на этот сеанс.
Поэтому, прежде чем стирать сеанс и выходить из системы по-настоящему, просто обновите столбец в БД для пользователя, который собирается выйти из системы с результатом.
Также я хотел бы отметить, что эти 2 идеи могут решить проблему с помощью программного подхода, но я уверен, что если вы исследуете Spring Security, вы можете найти способ найти эту информацию в каких-то журналах или аналогичных (Никогда раньше не пользовался Spring Security)
Надеюсь, я правильно объяснил себя.
Удачи