SpringFramework3.0: Как создать перехватчики, которые будут применяться только к запросам, отображаемым на определенные контроллеры - PullRequest
1 голос
/ 22 апреля 2010

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

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

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

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

Похоже, подход моего друга сработает для этого? Или как правильно делать это?

Ответы [ 3 ]

1 голос
/ 28 апреля 2010

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

1 голос
/ 04 мая 2010
0 голосов
/ 27 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...