Поскольку я запускаю Java с Tomcat6 в качестве контейнера сервлетов, я счел целесообразным использовать Tomcat JNDIRealm feature, чтобы пользователи LDAP могли входить в мой сайт без каких-либо дополнительных усилий. Сервер LDAP, который я использую, - OpenLDAP on Ubuntu.Проверка подлинности Java Tomcat LDAP
Вдобавок к этому у меня есть страница входа в систему, используя form-based authentication по адресу https connection.
Я нашел два очень хороших примера пользователей аутентификации через LDAP, here и here, которые оба достигли того, что я чувствую, что я почти достиг. Почему почти достигнуто?
При попытке входа в систему с неправильными учетными данными я надлежащим образом отправлен в <form-error-page>
, login-failed.html
в моем случае.
Когда мои учетные данные хороши, и я успешно завершаю проверку, я начинаю получать 403 для всех URL-адресов на сайте. И я не могу удалить ошибку 403 (даже не для страницы входа!), Если я не перезапущу Tomcat.
Я подозреваю, причина в том, что у меня нет roles
в царстве или других конфигурационных файлах. Ради краткости я ставлю соответствующие конфигурационные файлы выдержки на pastebin:
- Realm in Tomcat
server.xml
- Relevant
tomcat-users.xml
part - Relevant
web.xml
part - Basic LDAP structure, черточки указывают на структуру дерева
Обратите внимание, что Tomcat на основе auth отлично работает, поскольку роль легко привязывается к пользователю в tomcat-users.xml
. Поэтому я считаю, что проблема в получении роли для аутентифицированного пользователя из LDAP после успешной аутентификации.
TL/DR
У меня есть вопрос конфигурации при подключении к LDAP Tomcat AUTH. Пользовательские данные извлекаются правильно, но не роль пользователя. Сообщения журнала LDAP доступны по запросу;)
ОБНОВЛЕНИЕ: Я вставил данные LDAP here.
У вас есть группа cn = пользователи сайта, ou = groups, dc = mydomain, dc = com и пользователи в этой группе? – MaVRoSCy
, пожалуйста, также предоставьте дополнительную информацию о вашем разрыве ldap. – MaVRoSCy
@MaVRoSCy Основная структура LDAP [здесь] (http://pastebin.com/rQqxqtsm). Следовательно, у меня есть 'cn = site-users, ou = groups, dc = mydomain, dc = com'. Обратите внимание, что 'site-users' имеет несколько атрибутов' member', указывающих на пользователей. –