Укажите аутентификацию в контейнере, а не в web.xml - PullRequest
1 голос
/ 03 февраля 2009

Мы распространяем наше веб-приложение среди наших клиентов в виде файла .war. Таким образом, пользователь может просто развернуть войну в своем контейнере, и он готов к работе. Проблема в том, что некоторые наши клиенты хотели бы аутентификацию и использовать имя пользователя в качестве параметра для определенных операций в приложении.

Я знаю, как настроить это с помощью web.xml, но это означало бы, что мы должны либо сказать нашим клиентам взломать файл войны, либо распространять 2 отдельные войны; один с аутентификацией (и предопределенными ролями), один без.

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

Есть ли способ выполнить настройку аутентификации в контейнере, а не в самом веб-приложении?

Ответы [ 3 ]

2 голосов
/ 03 февраля 2009

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

Затем пусть клиенты связывают роли J2EE, определенные в вашем веб-приложении, с определенными группами пользователей и группами пользователей, определенными на их серверах приложений. Клиенты, которые не хотят никакого контроля доступа, могут связать все роли с неавторизованными пользователями (имя этой группы пользователей является специфическим для appserver, например, Websphere называет «Все»). Клиенты, которые хотят ограничить доступ к ресурсу (-ам) в вашем веб-приложении ограниченным набором пользователей или группой пользователей, могут сделать это, привязав роли к пользователям / группам в соответствии с их потребностями.

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

0 голосов
/ 03 февраля 2009

Многие контейнеры, такие как Glassfish, обеспечивают поддержку областей JDBC. В этом случае вы можете настроить доступ (например, в web.xml) для групп и позволить клиенту настраивать имена пользователей, пароли и членство в группах.

0 голосов
/ 03 февраля 2009

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

...