2010-04-22 1 views
1

В простейшей форме я хочу перехватчик, который проверяет данные сеанса, чтобы узнать, вошел ли пользователь в систему, и если не перенаправляет их на страницу входа. Очевидно, я бы не хотел, чтобы этот перехватчик использовался на странице приветствия или самой странице входа.SpringFramework3.0: Как создать перехватчики, которые применяются только к запросам, которые сопоставляются с определенными контроллерами?

Я видел проект, который использует список каждый URL к одному из двух перехватчиков, один ничего не делая, а другие фактический перехватчик вы хотите реализовать, но эта конструкция кажется очень неуклюжей и ограничивает легкость расширяемость приложения. Для меня имеет смысл, что должен быть метод использования перехватчиков на основе аннотаций, но это, похоже, не существует.

У моего друга есть идея фактически изменить класс обработчика, чтобы во время каждого запроса он проверял Контроллер, он сопоставляет запрос для новой аннотации, которую мы создали бы (ex @Interceptor («loginInterceptor»)).

Важнейшей точкой моего мышления является расширяемость, поскольку я хотел бы позже реализовать аналогичные перехватчики для проверки подлинности на основе ролей и/или администрирования.

Звучит ли так, как будет работать подход моего друга? Или что такое правильный способ сделать это?

ответ

0

Что касается фильтра сервлета во всех запросах, которые отправляют пользователя на страницу входа в систему, если пользовательский объект не находится в сеансе? Во второй части вы можете использовать аннотации безопасности для методов контроллера, которые могут проверять роль пользователя.

1

Использование Spring Security.

+0

Похоже, вы пытаетесь изобрести колесо здесь. как советуют барты, попробуйте реализовать Spring Security, я считаю, что вы можете охватить то, что вы пытаетесь сделать с самой базовой конфигурацией безопасности и несколькими аннотациями @Secure. – Chepech

Смежные вопросы