Если проект позволяет это, переход к весенней безопасности будет вашим лучшим выбором.Если нет, я могу предложить вам два варианта:
1. Используя перехватчик preHandle, зарегистрируйте его для нужных конечных точек.Вы можете получить доступ к запросу от перехватчика, поэтому реализация логики его проверки должна быть возможной.Также возможно перенаправление с перехватчика.
Pro - более простая реализация
Con - нет признаков того, что это происходит в сервисе
2. Использование пружинного AOP, реализующего пользовательский доступконтроль перед аннотацией.Вы можете получить запрос, чтобы получить требуемый идентификатор пользователя.Вы не можете выполнить перенаправление из аспекта before, но вы можете определить и вызвать исключение авторизации, которое вы бы обработали в глобальном обработчике исключений и перенаправили оттуда.
Pro - аннотации, четко видимые, легкодобавить или удалить, можно легко сделать метод или аннотацию класса
Con - более сложная реализация