2009-10-06 2 views
2

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

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

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

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

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

ответ

8

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

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

2

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

Все, что попадает в сервлет, неявно заверяется.

1

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

+0

Может быть немного тяжелым для его требований к применению. –

+1

Но я думал, что Весна была «легким» контейнером? ;) – les2

0

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

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