Пользовательская реализация isUserInRole с RDBMS - PullRequest
4 голосов
/ 25 февраля 2012

Я занимаюсь разработкой приложений Java EE 6, используя Glassfish 3.1.1 в качестве сервера приложений. Я использую декларативную и программную безопасность. Я определил несколько ролей в своем дескрипторе развертывания и определил все ограничения безопасности.

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

Я думал, что будет способ "переопределить" метод isUserInRole. При поиске я слышал о таких вещах, как JACC, и обнаружил, что есть способы подключить пользовательский поставщик JACC или что-то подобное к серверу приложений, но я не смог найти какую-либо пользовательскую реализацию JACC, и я понятия не имею, как сделать это (или событие, если это будет работать ..)

1 Ответ

0 голосов
/ 22 июня 2012

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

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

Итак, согласно моему пониманию, вам нужно будет реализовать гибридную область LDAP / JDBC. Вот пример кода для пользовательского модуля входа в систему и области. Вы можете видеть это похожий ответ моего.

...