как получить дополнительные поля данных LDAP через Tomcat (getRemoteUser дает только имя) - PullRequest
2 голосов
/ 11 декабря 2008

Я настроил Tomcat для использования LDAP / AD.

Как получить более подробную информацию о зарегистрированном пользователе; идентификатор пользователя возвращается request.getRemoteUser(), но не полным нужным мне именем.

Как мне получить фактическое "displayName" (полное имя) из AD?

Я использую ldap / activedirectory / tomcat 5.5

Ответы [ 2 ]

2 голосов
/ 14 декабря 2008

Я предполагаю, что конфигурация tomcat с LDAP / AD предназначена для входа в систему (например, Царство). Поэтому Наталья права: вам нужно будет запросить информацию на вашем LDAP-сервере. Поле комментария слишком короткое для этого комментария, поэтому я выбрал другой ответ с указанием того же.

Причина этого в том, что интерфейс Realm предоставляет принципала, который просто содержит имя пользователя и возможность запроса, если текущий пользователь находится в данной роли (он даже не предоставляет все роли, которые принципал в). Этого достаточно для получения ограничений доступа на основе URL-адресов в web.xml. Он не стремится быть вашим центральным контактом со всем, что хранится в вашей пользовательской базе данных.

Если вы не используете идентификатор пользователя, а просто хотите заменить его на полное имя пользователя, вы можете легко написать свою собственную область LDAP, просмотрев установку tomcat, создав новую реализацию Realm и добавив jar с этим реализация в TOMCAT_HOME / lib (для Tomcat 6.0). Конечно, вам нужно ссылаться на эту реализацию из вашего TOMCAT_HOME / conf / server.xml вместо стандартной реализации tomcat.

0 голосов
/ 12 декабря 2008

Вам нужно будет напрямую запросить каталог LDAP, чтобы получить дополнительную информацию о пользователе.

...