Java-сервлет и аутентификация

У меня есть небольшое приложение с 3-4 сервлетами и базовым модулем, которые обеспечивают мне аутентификацию, например:

public class Authentication {
    public boolean isUserAuthenticated(){
        ....
    }
}

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

Любое предложение приветствуется :)

Спасибо, Роберто


person Roberto    schedule 06.10.2009    source источник


Ответы (4)


Обязательно используйте фильтр сервлета. Это стандартный способ реализации безопасности в веб-приложениях Java.

Версия 2.3 спецификации Java Servlet вводит новый тип компонента, называемый фильтром. Фильтр динамически перехватывает запросы и ответы для преобразования или использования информации, содержащейся в запросах или ответах. Фильтры обычно не создают ответы сами по себе, а вместо этого предоставляют универсальные функции, которые можно «прикрепить» к любому типу сервлета или страницы JSP.

person cletus    schedule 06.10.2009

Вы можете поместить свою логику аутентификации в фильтр сервлетов. Если фильтр находит неаутентифицированный запрос, он может перенаправить пользователя на страницу входа (или что-то еще).

К тому времени все, что попадает в сервлет, неявно аутентифицируется.

person Will Hartung    schedule 06.10.2009

Используйте Acegi Security (теперь Spring Security). Использование Spring также облегчит вашу жизнь другими способами. (Spring security работает с использованием фильтра сервлетов, как упоминалось в сообщениях выше).

person les2    schedule 06.10.2009
comment
Может быть немного тяжеловат для его требований к приложению. - person Paul Whelan; 06.10.2009
comment
Но я думал, что Spring — это легкий контейнер? ;) - person les2; 07.10.2009

Аутентификацию пользователя можно выполнять с помощью фильтров сервлетов.
Посмотрите подробный пример Пример фильтра аутентификации пользователя

person sjith    schedule 22.01.2013