В простейшей форме мне нужен перехватчик, который проверяет данные сеанса, чтобы увидеть, вошел ли пользователь в систему, и, если нет, перенаправляет их на страницу входа. Очевидно, я бы не хотел, чтобы этот перехватчик использовался, скажем, на странице приветствия или на самой странице входа.
Я видел дизайн, в котором используется список каждого URL-адреса для одного из двух перехватчиков, один из которых ничего не делает, а другой является фактическим перехватчиком, который вы хотите реализовать, но этот дизайн кажется очень неуклюжим и ограничивает простоту расширяемости приложения. Для меня имеет смысл, что должен быть способ использования перехватчиков на основе аннотаций, но, похоже, этого не существует.
У моего друга есть идея фактически изменить класс обработчика, чтобы во время каждого запроса он проверял контроллер, на который он сопоставляет запрос, для новой аннотации, которую мы создадим (например, @Interceptor("loginInterceptor") ).
Важным моментом, о котором я думаю, является расширяемость, потому что я хотел бы позже реализовать аналогичные перехватчики для аутентификации на основе ролей и/или аутентификации администратора.
Похоже ли, что подход моего друга подойдет для этого? Или как правильно это сделать?