Java сервлет и аутентификация - PullRequest
2 голосов
/ 06 октября 2009

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

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

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

Любое предложение хорошо принято:)

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

Ответы [ 4 ]

8 голосов
/ 06 октября 2009

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

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

2 голосов
/ 06 октября 2009

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

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

1 голос
/ 06 октября 2009

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

0 голосов
/ 23 января 2013

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

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